4

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

我的路由器是这样的:

router.map({
  '/a': {
    component: A,
    subRoutes: {
      '/b': {
        component: B
      },
      '/c': {
        component: C
      }
    }
  }
});

我只想将组件 A 加载的数据与组件 B 和 C 共享。

提前致谢 !

4

1 回答 1

3

你有两个简单的选择。

丑陋的

使用$parent子路由组件中的选项。这使您可以访问父实例,这不是推荐的方式,但它是有效的

// from the child component
this.$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>
于 2016-06-17T13:23:57.157 回答