首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VueJS3:从路由定义传递数据

VueJS3:从路由定义传递数据
EN

Stack Overflow用户
提问于 2020-11-19 06:36:24
回答 1查看 229关注 0票数 1

使用Vue3。我希望在路由定义中设置允许的角色,然后在beforeRouteEnter中使用该值。类似于:

代码语言:javascript
复制
{
    path: "secure/page",
    name: "SecurePage",
    component: SecurePage,
    params: {role: admin},
}

然后

代码语言:javascript
复制
const guard = {
    template: `...`,
    beforeRouteEnter (to, from, next) {
        next(vm => {
            if( 'admin' === vm.$route.params.role) {

            }
        })
    },
}

因为它不管用。有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-19 09:14:02

在尝试时,不能从视图访问路由器params定义。你需要这样的东西:

代码语言:javascript
复制
{
    path: "secure/page",
    name: "SecurePage",
    component: SecurePage,
    meta: { role: 'admin' }
}

然后在视图中,而不是在vm.$route.params.role中使用vm.$route.meta.role

代码语言:javascript
复制
beforeRouteEnter(to, from, next) {
    next(vm => {
        if ('admin' === vm.$route.meta.role) {

        }
    })
}

正如您所知道的,beforeRouteEnter保护不允许而不是访问这一点,因为这个保护在导航确认之前就被调用了,因此新的进入组件甚至还没有创建。

更多关于元字段的信息,您可以在这里找到:https://router.vuejs.org/guide/advanced/meta.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64906545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档