Skip to content

Commit da2cae6

Browse files
committed
refactor(router): 重构路由任务类型和任务映射逻辑
- 将原有的多个任务类型合并为更具语义化的类型(callBridge, applyApp等) - 简化任务映射逻辑,移除冗余任务类型 - 统一导航类型的处理方式,使用applyApp作为默认处理
1 parent f218486 commit da2cae6

File tree

1 file changed

+25
-36
lines changed

1 file changed

+25
-36
lines changed

packages/router/src/next/router.ts

Lines changed: 25 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,10 @@ import type {
2020
// biome-ignore lint/complexity/noStaticOnlyClass: <explanation>
2121
class TaskType {
2222
public static outside = 'outside';
23-
public static envBridge = 'envBridge';
24-
public static applyRoute = 'applyRoute';
25-
public static push = 'push';
26-
public static replace = 'replace';
27-
public static open = 'open';
28-
public static reload = 'reload';
23+
public static callBridge = 'callBridge';
24+
public static applyApp = 'applyApp';
25+
public static applyNavigation = 'applyNavigation';
26+
public static applyWindow = 'applyWindow';
2927
}
3028

3129
export class Router {
@@ -36,14 +34,13 @@ export class Router {
3634
private _microApp: MicroApp = new MicroApp();
3735

3836
private _tasks = {
39-
// 检查是否是外部链接
4037
[TaskType.outside]: (ctx: RouteTaskContext) => {
4138
if (ctx.to.matched.length === 0) {
4239
ctx.options.onOpen(ctx.to);
4340
return ctx.finish();
4441
}
4542
},
46-
[TaskType.envBridge]: async (ctx: RouteTaskContext) => {
43+
[TaskType.callBridge]: async (ctx: RouteTaskContext) => {
4744
const { to } = ctx;
4845
if (!to.config || !to.config.env) {
4946
return;
@@ -64,56 +61,48 @@ export class Router {
6461
ctx.finish();
6562
}
6663
},
67-
// 应用当前的 URL
68-
[TaskType.applyRoute]: (ctx: RouteTaskContext) => {
64+
[TaskType.applyApp]: (ctx: RouteTaskContext) => {
6965
this._route = ctx.to;
70-
this._microApp._update(this);
66+
this._microApp._update(
67+
this,
68+
ctx.navigationType === NavigationType.reload
69+
);
7170
},
72-
[TaskType.push]: (ctx: RouteTaskContext) => {
71+
[TaskType.applyNavigation]: (ctx: RouteTaskContext) => {
7372
this._navigation.push(ctx.to);
7473
ctx.finish();
7574
},
76-
[TaskType.replace]: (ctx: RouteTaskContext) => {
77-
this._navigation.push(ctx.to);
78-
ctx.finish();
79-
},
80-
[TaskType.open]: (ctx: RouteTaskContext) => {
75+
[TaskType.applyWindow]: (ctx: RouteTaskContext) => {
8176
ctx.options.onOpen(ctx.to);
8277
ctx.finish();
83-
},
84-
[TaskType.reload]: (ctx: RouteTaskContext) => {
85-
this._microApp._update(this);
86-
ctx.finish();
8778
}
8879
} satisfies Record<string, RouteTaskCallback>;
8980
private _taskMaps = {
9081
[NavigationType.push]: [
9182
TaskType.outside,
92-
TaskType.envBridge,
93-
TaskType.applyRoute,
94-
TaskType.push
83+
TaskType.callBridge,
84+
TaskType.applyApp,
85+
TaskType.applyNavigation
9586
],
9687
[NavigationType.replace]: [
9788
TaskType.outside,
98-
TaskType.envBridge,
99-
TaskType.applyRoute,
100-
TaskType.replace
89+
TaskType.applyApp,
90+
TaskType.applyNavigation
10191
],
10292
[NavigationType.openWindow]: [
10393
TaskType.outside,
104-
TaskType.envBridge,
105-
TaskType.open
94+
TaskType.callBridge,
95+
TaskType.applyWindow
10696
],
10797
[NavigationType.replaceWindow]: [
10898
TaskType.outside,
109-
TaskType.envBridge,
110-
TaskType.open
99+
TaskType.applyWindow
111100
],
112-
[NavigationType.reload]: [TaskType.outside, TaskType.reload],
113-
[NavigationType.back]: [TaskType.outside],
114-
[NavigationType.go]: [TaskType.outside],
115-
[NavigationType.forward]: [TaskType.outside],
116-
[NavigationType.popstate]: [TaskType.outside]
101+
[NavigationType.reload]: [TaskType.outside, TaskType.applyApp],
102+
[NavigationType.back]: [TaskType.applyApp],
103+
[NavigationType.go]: [TaskType.applyApp],
104+
[NavigationType.forward]: [TaskType.applyApp],
105+
[NavigationType.popstate]: [TaskType.applyApp]
117106
} satisfies Record<string, TaskType[]>;
118107

119108
public get route() {

0 commit comments

Comments
 (0)