vue.js - 如何将带有查询参数的路由器添加到路由器列表中?
问题描述
我想添加一个带有查询参数的路由。
如果 url 是blog
,则导航到索引页面。
如果 url 包含author
查询参数,则将页面上的组件替换为BlogAuthorPage
组件。
router: {
extendsRoutes(routes, resolve) {
routes.push({
name: 'author-page-detail',
path: '/blog?author=*',
component: resolve(__dirname, 'pages/blog/author-page.vue')
})
}
}
解决方案
这不应该在nuxt.config.js
路由器密钥中完成,而是在您的blog.vue
页面中直接使用组件路由器保护完成。
下面的代码应该足以检查路由是否有author
查询参数并重定向到blog/author-page
页面。
<script>
export default {
beforeRouteEnter(to, from, next) {
next((vm) => {
if (vm.$route.query?.author) next({ name: 'blog-author-page' })
else next()
})
},
}
</script>
推荐阅读
- android - Android 5.0 录屏时如何自动获取权限?
- xmgrace - 通过 xmgrace 批处理生成条形图
- html - BS4 卡不适合父 div
- python - Python中的系列和一维数据框之间有区别吗
- kubernetes - 如何快速使 Kubernetes 就绪探测失败?
- php - Symfony/Doctrine 通知:未定义索引:000*
- firebase - Flutter/Firebase 实时数据库 - 处理网络错误
- wordpress - 如何仅以美元将货币传递到付款网关
- php - Codeigniter 4对模型中的功能进行分页
- php - pragmarx/google2fa-laravel verifyKey 总是返回 false