如何在 nuxt.js 中编写全局路由器功能
how to write global router-function in nuxt.js
我正在使用 Vue.js 和 Nuxt.js,但路由器的功能出现问题。
在纯 Vue 中,我可以这样写 main.js
:
val route = new Router({
routes:{
[...]
}
})
route.beforeEach(to,from,next){
//do something to validate
}
如何在 nuxt.js 中做同样的事情?我找不到像 main.js
.
这样的文件
另外,我只知道处理pages
文件夹来实现路由,无法设置重定向路径
请帮忙,thx :)
您可以为 Nuxt 创建一个插件
创建一个 plugins/route.js
文件:
export default ({ app }) => {
// Every time the route changes (fired on initialization too)
app.router.afterEach((to, from) => {
//do something to validate
})
}
并更新您的 nuxt.config.js
文件:
plugins: ['~/plugins/route']
有关 Nuxt 插件的更多详细信息:https://nuxtjs.org/guide/plugins
如果有人可能仍然感兴趣,可以像这样在 nuxt.config.js
中设置全局中间件:
router: { middleware: ['foo'] },
然后在你的 middleware/foo.js
你做任何事...
export default function({ route, from, store, redirect }) {}
注意:您不能将此用于静态站点(nuxt 生成),因为中间件不会在页面加载时执行,而只会在后续路由更改时执行。感谢@ProblemsOfSumit 指出这一点。
我正在使用 Vue.js 和 Nuxt.js,但路由器的功能出现问题。
在纯 Vue 中,我可以这样写 main.js
:
val route = new Router({
routes:{
[...]
}
})
route.beforeEach(to,from,next){
//do something to validate
}
如何在 nuxt.js 中做同样的事情?我找不到像 main.js
.
另外,我只知道处理pages
文件夹来实现路由,无法设置重定向路径
请帮忙,thx :)
您可以为 Nuxt 创建一个插件
创建一个 plugins/route.js
文件:
export default ({ app }) => {
// Every time the route changes (fired on initialization too)
app.router.afterEach((to, from) => {
//do something to validate
})
}
并更新您的 nuxt.config.js
文件:
plugins: ['~/plugins/route']
有关 Nuxt 插件的更多详细信息:https://nuxtjs.org/guide/plugins
如果有人可能仍然感兴趣,可以像这样在 nuxt.config.js
中设置全局中间件:
router: { middleware: ['foo'] },
然后在你的 middleware/foo.js
你做任何事...
export default function({ route, from, store, redirect }) {}
注意:您不能将此用于静态站点(nuxt 生成),因为中间件不会在页面加载时执行,而只会在后续路由更改时执行。感谢@ProblemsOfSumit 指出这一点。