微前端,选型使用的是Qiankun,Qiankun 是一个基于微前端架构的 JavaScript 库,用于构建支持多个独立的、协同工作的前端应用。在 Qiankun 中,你可以选择使用 hash 路由或 history 路由,这主要取决于你的项目需求以及对路由的选择。
# 1. Hash 路由:
- Hash 路由是通过 URL 的哈希部分(#)来进行路由的。在 Qiankun 中,当使用 hash 路由时,子应用的路由将会被包含在哈希部分中,例如
http://localhost:8081/#/subapp1
。这种方式的优势在于它可以很好地与单页应用 (SPA) 配合使用,同时也能规遍浏览器兼容性的问题。 - 在 Qiankun 中配置 hash 路由:
import { registerMicroApps, start } from 'qiankun';
registerMicroApps([
{
name: 'subapp1',
entry: 'http://localhost:8081',
container: '#subapp-container',
activeRule: '/subapp1',
},
// ...其他子应用配置
]);
start();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
子应用的 activeRule
配置即为哈希路由的路径。
# 2. History 路由:
- History 路由是使用 HTML5 History API 来实现的路由方式,它可以使 URL 更加友好,例如
http://localhost:8081/subapp1
。这样的路由形式更符合传统的单页应用路由的设计,但需要服务端配置以支持。 - 在 Qiankun 中配置 history 路由:
import { registerMicroApps, start } from 'qiankun';
registerMicroApps([
{
name: 'subapp1',
entry: 'http://localhost:8081',
container: '#subapp-container',
activeRule: '/subapp1',
props: {
routerMode: 'history', // 指定使用 history 路由
},
},
// ...其他子应用配置
]);
start();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
- 在子应用中,可以根据
routerMode
属性选择使用 hash 路由或 history 路由。
选择使用 hash 路由还是 history 路由取决于你的项目需求以及团队的开发偏好。一般来说,如果需要更好的兼容性和简单的配置,可以选择 hash 路由。如果项目要求使用更友好的 URL,并且服务端可以做相应配置,可以选择 history 路由。