无法使用vue-router从root Vue实例获取数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法使用vue-router从root Vue实例获取数据相关的知识,希望对你有一定的参考价值。

我在根Vue实例中加载了所有数据,并试图在我的路由器中访问它们。

如何在路由器中访问根实例中的数据?我在网上发现的所有this.a.app或this.app答案都不是解决方案。

Router.js:

import Vue from 'vue'
import Router from 'vue-router'
import Login from '../components/login'
import Container from '../components/container'
Vue.use(Router)

export default new Router({
    mode: 'history',
    routes: [{
            path: '/login',
            name: 'Login',
            component: Login,
            props: { test: **<data from my Vue root instance>** }
        },
        {
            path: '/products',
            name: 'Container',
            component: Container,
            children: [{
                    path: 'flavor',
                    component: Login
                },
                {
                    path: 'storage',
                    component: Login
                },
                {
                    path: 'network',
                    component: Login
                }
            ]
        }
    ]
})

Main.js:

import router from './router’
var vm = new Vue({
el: ‘#app’,
router,
template: ‘’,
components: {
App
},
data() {
return {
modal: ‘’
答案

我会避免使用路由器实例共享数据。我个人喜欢有一个商店文件,其中包含我想在我的组件之间共享的数据。

export default {
  state: {
    counter: 0
  }
}

在您的组件中,您可以导入文件:

import store from '../store'

export default {
  data () {
    return {
      sharedState: store.state
    }
  }
}

对sharedState的更改也将传递给其他组件。

资料来源:https://skyronic.com/2016/01/03/vuex-basics-tutorial /解决方案2

以上是关于无法使用vue-router从root Vue实例获取数据的主要内容,如果未能解决你的问题,请参考以下文章

如何将 vue-resource 与 vue-router 实例一起使用?

浅读vue-router源码,了解vue-router基本原理

前端开发简说Vue-router路由

vue-router 简单实例

vue2+vuex+vue-router 快速入门 vue 实例介绍

vue-router 总是创建一个新的 Component 实例