首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VueJS:在$router对象的作用域外使用它

VueJS:在$router对象的作用域外使用它
EN

Stack Overflow用户
提问于 2019-07-29 23:41:14
回答 3查看 496关注 0票数 0

前段时间,我在玩vue-router,它的工作原理如下:

代码语言:javascript
复制
routes: [{
        path: '/',
        name: 'home',
        component: Home,
        title: 'Home'
        icon: 'some font awesome icon here'
    },
    {
        path: '/about',
        name: 'about',
        title: 'About',
        component: () => import('../pages/About.vue'),
        icon: 'some other font awesome class'
    },

    ...

请注意titleicon属性。不知何故,我能够从我的一个组件中访问这些内容。

现在我似乎不能让它工作了。

我已经尝试了this.$route,它为我提供了当前路由,但我没有这些附加属性。

根据我的记忆,我没有使用props。如果有什么不同,我希望将它们发送到vuex store实例中。

任何建议都将不胜感激。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-07-29 23:59:09

您可以使用meta属性来执行以下操作:

代码语言:javascript
复制
{
    path: '/',
    name: 'home',
    component: Home,
    meta: {
        title: 'Home'
        icon: 'some font awesome icon here'
    }
},

然后,您可以在组件中访问它,如下所示:

代码语言:javascript
复制
this.$route.meta.title;
票数 1
EN

Stack Overflow用户

发布于 2019-07-30 00:02:15

为此,您可以使用route meta fields。如下所示:

代码语言:javascript
复制
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home,
      meta: {
        title: 'Home',
        icon: 'some font awesome icon here',
      }
    },
    {
      path: '/about',
      name: 'about',
      component: About,
      meta: {
        title: 'About',
        icon: 'some other font awesome class',
      }
    }
  ]
票数 1
EN

Stack Overflow用户

发布于 2019-07-30 00:05:18

您可以使用路由器props来实现此目的,如下所示:

代码语言:javascript
复制
{
    path: '/',
    name: 'home',
    component: Home,
    props : true // now you can bind props
}

然后,当您想要动态导航到一条路线时:

代码语言:javascript
复制
this.$router.push({
  name: 'home',
  params: {
    icon: 'some icon here',
    title: 'some title'
  }
})

在您的组件上:

代码语言:javascript
复制
props : ['icon','title']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57257209

复制
相关文章

相似问题

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