From: freemedom <57294686+freemedom@users.noreply.github.com> Date: Sat, 16 Dec 2023 03:51:11 +0000 (+0800) Subject: docs(zh): Update route-matching-syntax.md and navigation-guards.md (#1758) X-Git-Tag: v4.3.0~33 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=35a9c1b29d1fed1ac4d09a9640fc0507459c7145;p=thirdparty%2Fvuejs%2Frouter.git docs(zh): Update route-matching-syntax.md and navigation-guards.md (#1758) * Update route-matching-syntax.md * Update navigation-guards.md * Update navigation-guards.md * Update navigation-guards.md * Update navigation-guards.md * Apply suggestions from code review --------- Co-authored-by: Jinjiang --- diff --git a/packages/docs/zh/guide/advanced/navigation-guards.md b/packages/docs/zh/guide/advanced/navigation-guards.md index 7767b38c..3f56595d 100644 --- a/packages/docs/zh/guide/advanced/navigation-guards.md +++ b/packages/docs/zh/guide/advanced/navigation-guards.md @@ -31,7 +31,7 @@ router.beforeEach((to, from) => { 可以返回的值如下: - `false`: 取消当前的导航。如果浏览器的 URL 改变了(可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 `from` 路由对应的地址。 -- 一个[路由地址](../../api/#routelocationraw): 通过一个路由地址跳转到一个不同的地址,就像你调用 [`router.push()`](../../api/#push) 一样,你可以设置诸如 `replace: true` 或 `name: 'home'` 之类的配置。当前的导航被中断,然后进行一个新的导航,就和 `from` 一样。 +- 一个[路由地址](../../api/#routelocationraw): 通过一个路由地址重定向到一个不同的地址,如同调用 [`router.push()`](../../api/#push),且可以传入诸如 `replace: true` 或 `name: 'home'` 之类的选项。它会中断当前的导航,同时用相同的 `from` 创建一个新导航。 ```js router.beforeEach(async (to, from) => { @@ -63,7 +63,7 @@ router.beforeEach(async (to, from) => { ### 可选的第三个参数 `next` -在之前的 Vue Router 版本中,也是可以使用 _第三个参数_ `next` 的。这是一个常见的错误来源,可以通过 [RFC](https://github.com/vuejs/rfcs/blob/master/active-rfcs/0037-router-return-guards.md#motivation) 来消除错误。然而,它仍然是被支持的,这意味着你可以向任何导航守卫传递第三个参数。在这种情况下,**确保 `next`** 在任何给定的导航守卫中都被**严格调用一次**。它可以出现多于一次,但是只能在所有的逻辑路径都不重叠的情况下,否则钩子永远都不会被解析或报错。这里有一个在用户未能验证身份时重定向到`/login`的**错误用例**: +在之前的 Vue Router 版本中,还可以使用 _第三个参数_ `next` 。这是一个常见的错误来源,我们经过 [RFC](https://github.com/vuejs/rfcs/blob/master/active-rfcs/0037-router-return-guards.md#motivation) 讨论将其移除。然而,它仍然是被支持的,这意味着你可以向任何导航守卫传递第三个参数。在这种情况下,**确保 `next`** 在任何给定的导航守卫中都被**严格调用一次**。它可以出现多于一次,但是只能在所有的逻辑路径都不重叠的情况下,否则钩子永远都不会被解析或报错。这里有一个在用户未能验证身份时重定向到`/login`的**错误用例**: ```js // BAD diff --git a/packages/docs/zh/guide/essentials/route-matching-syntax.md b/packages/docs/zh/guide/essentials/route-matching-syntax.md index 1df1e106..372ed674 100644 --- a/packages/docs/zh/guide/essentials/route-matching-syntax.md +++ b/packages/docs/zh/guide/essentials/route-matching-syntax.md @@ -13,7 +13,7 @@ ## 在参数中自定义正则 -当定义像 `:userId` 这样的参数时,我们内部使用以下的正则 `([^/]+)` (至少有一个字符不是斜杠 `/` )来从 URL 中提取参数。这很好用,除非你需要根据参数的内容来区分两个路由。想象一下,两个路由 `/:orderId` 和 `/:productName`,两者会匹配完全相同的 URL,所以我们需要一种方法来区分它们。最简单的方法就是在路径中添加一个静态部分来区分它们: +当定义像 `:userId` 这样的参数时,我们内部使用以下的正则 `([^/]+)` (至少一个不是斜杠 `/` 的字符)来从 URL 中提取参数。这很好用,除非你需要根据参数的内容来区分两个路由。想象一下,两个路由 `/:orderId` 和 `/:productName`,两者会匹配完全相同的 URL,所以我们需要一种方法来区分它们。最简单的方法就是在路径中添加一个静态部分来区分它们: ```js const routes = [