Vue.js VueJs-使用vue路由器将数据传递到子例程组件

Vue.js VueJs-使用vue路由器将数据传递到子例程组件,vue.js,vue-router,Vue.js,Vue Router,我不明白如何将“路由组件”加载的数据传递给“子例程组件”。。 (我将Vue.js与Vue路由器一起使用) 我的路由器是这样的: router.map({ '/a': { component: A, subRoutes: { '/b': { component: B }, '/c': { component: C } } } }); 我只想与组件B和C共享组件A加载的数据 提前谢谢 您

我不明白如何将“路由组件”加载的数据传递给“子例程组件”。。 (我将Vue.js与Vue路由器一起使用)

我的路由器是这样的:

router.map({
  '/a': {
    component: A,
    subRoutes: {
      '/b': {
        component: B
      },
      '/c': {
        component: C
      }
    }
  }
});
我只想与组件B和C共享组件A加载的数据


提前谢谢

您有两个简单的选择

丑陋的人

使用子例程组件中的选项。这使您能够访问父实例,这不是推荐的方法,但它是有效的

//来自子组件
这是$parent.someData
好的

使用。道具使您有机会将任何数据从父对象传递给子对象。它更好,因为它可以防止错误(您传递的是数据而不是实例),并且您只传递您需要的内容,即使它不是父数据的一部分

// parent component
<template>
    <child :childsdata="parentdata"></child>
</template
<script>
    export default {
        data: function () {
            return {
                parentdata: 'Hello!'
            }
        }
    }
</script>

// child component
<template>
    {{ childsdata }} <!-- prints "Hello!" -->
</template>
<script>
    export default {
        props: {
            childsdata: {
                type: String
            }
        }
    }
</script>
//父组件

也许
vuex
正是您想要的:使用道具可以从
组件B
组件C
发送数据?我在很多地方都找到了这种“”风格的答案,但您可以看到,在vue路由器下没有“正义”,我不想添加道具,因为每个路由器都需要不同的道具。这应该是vue路由器使用的routes对象的一部分。