0

我是 Vuejs 的新手,所以很抱歉这是一个新手问题。

我在我的应用程序中添加了一个路由器,我想将我的主应用程序中的数据渲染到我的组件模板中,但它不起作用。

这就是我所拥有的:

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

4

2 回答 2

1

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

<router-view :text="text"></router-view>
于 2019-12-14T22:06:49.453 回答
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>

于 2019-12-14T22:18:06.373 回答