VueJs - 使用vue-router将数据传递给subRoutes组件

时间:2016-06-17 12:56:23

标签: vue.js vue-router

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

我的路由器看起来像这样:

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

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

提前致谢!

1 个答案:

答案 0 :(得分:3)

您有两个简单的选择。

丑陋的

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

// 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>

好的

使用props。道具让您有机会将父母的任何数据传递给孩子。它更好,因为防止错误(你传递数据而不是实例)并且你只传递你需要的东西,即使它不是父数据的一部分。

.accordion-heading .fa {
  display: none;
  //Other css required for the fa display in general can go here.
}

.AccordionPanelOpen .fa-chevron-up {
  display: block;
}

.AccordionPanelClosed .fa-chevron-down {
  display: block;
}