File tree Expand file tree Collapse file tree 2 files changed +3
-3
lines changed Expand file tree Collapse file tree 2 files changed +3
-3
lines changed Original file line number Diff line number Diff line change @@ -31,7 +31,7 @@ router.beforeEach((to, from) => {
31
31
可以返回的值如下:
32
32
33
33
- ` false ` : 取消当前的导航。如果浏览器的 URL 改变了(可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 ` from ` 路由对应的地址。
34
- - 一个[ 路由地址] ( ../../api/#routelocationraw ) : 通过一个路由地址跳转到一个不同的地址,就像你调用 [ ` router.push() ` ] ( ../../api/#push ) 一样,你可以设置诸如 ` replace: true ` 或 ` name: 'home' ` 之类的配置。当前的导航被中断,然后进行一个新的导航,就和 ` from ` 一样 。
34
+ - 一个[ 路由地址] ( ../../api/#routelocationraw ) : 通过一个路由地址重定向到一个不同的地址,如同调用 [ ` router.push() ` ] ( ../../api/#push ) ,且可以传入诸如 ` replace: true ` 或 ` name: 'home' ` 之类的选项。它会中断当前的导航,同时用相同的 ` from ` 创建一个新导航 。
35
35
36
36
``` js
37
37
router .beforeEach (async (to , from ) => {
@@ -63,7 +63,7 @@ router.beforeEach(async (to, from) => {
63
63
64
64
### 可选的第三个参数 ` next `
65
65
66
- 在之前的 Vue Router 版本中,也是可以使用 _ 第三个参数_ ` next ` 的 。这是一个常见的错误来源,可以通过 [ RFC] ( https://github.com/vuejs/rfcs/blob/master/active-rfcs/0037-router-return-guards.md#motivation ) 来消除错误 。然而,它仍然是被支持的,这意味着你可以向任何导航守卫传递第三个参数。在这种情况下,** 确保 ` next ` ** 在任何给定的导航守卫中都被** 严格调用一次** 。它可以出现多于一次,但是只能在所有的逻辑路径都不重叠的情况下,否则钩子永远都不会被解析或报错。这里有一个在用户未能验证身份时重定向到` /login ` 的** 错误用例** :
66
+ 在之前的 Vue Router 版本中,还可以使用 _ 第三个参数_ ` next ` 。这是一个常见的错误来源,我们经过 [ RFC] ( https://github.com/vuejs/rfcs/blob/master/active-rfcs/0037-router-return-guards.md#motivation ) 讨论将其移除 。然而,它仍然是被支持的,这意味着你可以向任何导航守卫传递第三个参数。在这种情况下,** 确保 ` next ` ** 在任何给定的导航守卫中都被** 严格调用一次** 。它可以出现多于一次,但是只能在所有的逻辑路径都不重叠的情况下,否则钩子永远都不会被解析或报错。这里有一个在用户未能验证身份时重定向到` /login ` 的** 错误用例** :
67
67
68
68
``` js
69
69
// BAD
Original file line number Diff line number Diff line change 13
13
14
14
## 在参数中自定义正则
15
15
16
- 当定义像 ` :userId ` 这样的参数时,我们内部使用以下的正则 ` ([^/]+) ` (至少有一个字符不是斜杠 ` / ` )来从 URL 中提取参数。这很好用,除非你需要根据参数的内容来区分两个路由。想象一下,两个路由 ` /:orderId ` 和 ` /:productName ` ,两者会匹配完全相同的 URL,所以我们需要一种方法来区分它们。最简单的方法就是在路径中添加一个静态部分来区分它们:
16
+ 当定义像 ` :userId ` 这样的参数时,我们内部使用以下的正则 ` ([^/]+) ` (至少一个不是斜杠 ` / ` 的字符 )来从 URL 中提取参数。这很好用,除非你需要根据参数的内容来区分两个路由。想象一下,两个路由 ` /:orderId ` 和 ` /:productName ` ,两者会匹配完全相同的 URL,所以我们需要一种方法来区分它们。最简单的方法就是在路径中添加一个静态部分来区分它们:
17
17
18
18
``` js
19
19
const routes = [
You can’t perform that action at this time.
0 commit comments