Skip to content

Commit 7ef98a5

Browse files
committed
feat(router): 实现 reload 逻辑(销毁所有应用并重新应用路由)
1 parent 2bea9aa commit 7ef98a5

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

packages/router/src/next/router.ts

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -129,18 +129,21 @@ export class Router {
129129
location: normLoc
130130
};
131131
}
132+
132133
// 匹配路由成功后有可能会重新构造 URL
133134
normLoc = result.location;
134-
// 如果是 push 或 replace 或 go 等类型,则应用路由并返回
135+
136+
// 如果是 push/replace/reload 或 go 等类型,则应用路由并返回
137+
const isReload = type === NavigationActionType.reload;
138+
const isReplace = type === NavigationActionType.replace;
135139
if (
136-
isHistoryAction ||
137140
type === NavigationActionType.push ||
138-
type === NavigationActionType.replace
141+
isHistoryAction ||
142+
isReload ||
143+
isReplace
139144
) {
140-
this._applyRoute(
141-
result.route,
142-
type === NavigationActionType.replace
143-
);
145+
if (isReload) this._destroyAllApp();
146+
this._applyRoute(result.route, isReplace || isReload);
144147
return {
145148
navResultType: NavigationResultType.success,
146149
navActionType: type,
@@ -149,7 +152,7 @@ export class Router {
149152
};
150153
}
151154

152-
// 剩下的还有 pushLayer 和 reload
155+
// 剩下的还有 pushLayer
153156
return {
154157
navResultType: NavigationResultType.error,
155158
navActionType: type,

0 commit comments

Comments
 (0)