Vue.js,如何将道具传递给路由器渲染的组件?

时间:2019-12-14 21:30:43

标签: javascript vue.js vue-router vue-props

我是Vuejs的新用户,对不起,这是一个新手问题。

我已在我的App中添加了一个路由器,我想将主App中的数据渲染到我的Components模板中,但是它不起作用。

这就是我所拥有的:

Vue.use(VueRouter);

const Text = { props: ['text'], template: '<div>This is the text: {{text}} </div>' }

const routes = [
  { path: '*', component: Text, props: true }
]

const router = new VueRouter({
  routes: routes
})

new Vue({
  router: router,
  el: "#app",
  data: {
    text: "Hello there!"
  }
})

我曾期望text道具可以链接到我的App.data.text,但它没有发生。

这是一个jsfiddle:https://jsfiddle.net/fguillen/psqztn93

2 个答案:

答案 0 :(得分:1)

您可能希望通过router-view转发道具(此处将text传递到渲染的组件Text

<router-view :text="text"></router-view>

答案 1 :(得分:1)

const Text = {
  props: ["text"],
  template: "<div>This is the text: {{text}} </div>"
};

const routes = [{ path: "*", component: Text }];

const router = new VueRouter({
  routes: routes
});

new Vue({
  router: router,
  el: "#app",
  data: {
    text: "Hello there!"
  }
});
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-router@3.1.3/dist/vue-router.js"></script>

<div id="app">
  <router-view :text="text"></router-view>
</div>