Vue.js - 将参数传递给子路由

时间:2017-07-08 12:51:57

标签: vue.js

我有一个Vue.js应用程序。此应用使用vue-router显示观看次数。当应用程序启动时,我需要从服务器检索密钥。然后我想将该密钥传递给子视图。为了演示这个问题,我设置了这个Fiddle。与此问题相关的代码如下:

var Page1 = { template: '<div><h3>Page 1</h3><p>Number: {{ number }}</p></div>', props: [ 'number' ] };
var Page2 = { template: '<div><h3>Page 2</h3><p>Number: {{ number }}</p></div>', props: [ 'number' ] };

var routes = [
  { path: '/page-1', component: Page1 },
  { path: '/page-2', component: Page2 }
];

var router = new VueRouter({
  routes 
});

var app = new Vue({
  router,
  el: '#app',
  data: {
    num: 0  
  },
  created: function() {
    var self = this;
    setTimeout(function() {
      self.num = 1;
    }, 100);
  }
});

当我运行此应用时,我不确定在设置app.num时如何将Page1“传递”到子视图(Page2app.num) 。我尝试使用“passing props to route components”文档中提到的方法。但是,该方法似乎不适用于创建后加载的数据。我错过了什么?

1 个答案:

答案 0 :(得分:6)

您可以通过router-view将父组件中的值绑定到子组件,如下所示:

<router-view :number="num"></router-view>