当路由器在vuejs2.0中更改时,vue-route将不同的道具传递给不同的视图组件?

时间:2016-09-06 08:56:54

标签: vue.js vuejs2 vue-router

this ticket中,当路线通过

更改时,我们可以将参数传递给组件
<router-view class="view" :propForA="AData"></router-view>

我的问题是如果我们需要将不同的道具传递给不同的路由组件, 比方说,例如,propForB属性将BDatapropForC属性将具有CData

如何实现?特别是在vuejs2.0?

1 个答案:

答案 0 :(得分:1)

我会发送一个支柱,其中包含适合您组件的不同值...例如:

<router-view class="view" :propData="propToSend"></router-view>

然后就是这样的

export default {

  data: function () {
    return {
      propAData: {
        something: 'value',
        somethingElese: ['other', 'value']
      },
      propBData: {
        somethingOther: 123
      },
      propToSend: null
    }
  },

  watch: {
    '$route': function (val, oldVal) {
      if (this.$route.name === 'Something') {
        this.propToSend = this.propAData
      } else {
        this.propToSend = this.propBData
      }
    }
  }
}

当然还有其他方法可以达到同样的效果......