vue.js - 如何让 Nuxt 路由器更有活力?
问题描述
我目前正在用 vue 替换旧版应用程序。
我有一条复杂的路线,例如/foo/:category/:sub/:match
. 大多数时候,url 就像在那个路由定义中一样。对于一些流行的 url 的 SEO 认为他们想要短的 url,比如/veryPopularSub
.
是否可以为此注册别名?
就像是:
{ name: 'generic', path: '/foo/:category/:sub/:match' },
{ path: '/aSpecificShortcut', alias: { name: 'generic', params: { category: 1, sub: 2, match: 3 } } }
访问aSpecificShortcut
浏览器时不应重定向
解决方案
如果你想在保持简单的同时为你的应用增加更多的灵活性,你可以使用router-extras-module 。
可以这样使用
<router>
{
alias: [
'cool-fancy-alias',
]
}
</router>
<template>
...
</template>
不幸的是,这将不支持此处所述的动态路径:https ://github.com/nuxt-community/router-extras-module/issues/132#issuecomment-725413491
可以尝试更深入的配置,如我在此处的回答中所述,但即便如此,我不确定您是否可以拥有像这样的动态
export default {
router: {
extendRoutes(routes, resolve) {
routes.push(
{
name: 'foo-category-sub-match',
path: '/foo/*/*/*',
component: resolve(__dirname, 'pages/data/index.vue'),
alias: 'fancy-path-name' // dynamic here?
}
)
}
}
}
vue-router@4 有一些变化,完整列表在这里:https ://next.router.vuejs.org/guide/migration/
同时,在 Nuxt3(由 Vue3 提供支持)发布之前,Nuxt 将无法使用此功能。不过,即使在那里也不确定它是否受到支持。
有这个github 问题,但不确定这是否可以推断为alias
. 也许在那里的项目上问它,@posva 负责路由器并在那里做很棒的事情。
推荐阅读
- javascript - 尝试通过使用 jquery 的 DOM 访问来修改输入值
- flutter - 在 Android Studio 中导入 dart 文件时可以进行智能感知吗?
- javascript - Datepicker JQUERY 不选择输入日期
- java - 如何用读取 txt 文件填充 ArrayList
- verilog - Verilog错误“连续赋值输出必须是网络”
- javascript - 引导标签输入 maxTag 在函数内不起作用
- javascript - 如何让我的复选框以 true 开头?
- python-3.x - 为什么我们使用 key=get 进行排序,key 方法是如何工作的
- java - 如何将在 EditText 控件中输入的值与 android studio 中微调器容器中的项目绑定在一起?
- version-control - 是否有类似 GitGraph 的 perforce 功能?