Vue.js vue route在vuejs2.0中更改路由器时是否将不同的道具传递给不同的视图组件?
在中,当路由通过更改时,我们可以将参数传递给组件Vue.js vue route在vuejs2.0中更改路由器时是否将不同的道具传递给不同的视图组件?,vue.js,vuejs2,vue-router,Vue.js,Vuejs2,Vue Router,在中,当路由通过更改时,我们可以将参数传递给组件 <router-view class="view" :propForA="AData"></router-view> 我的问题是,如果我们需要将不同的道具传递给不同的路由组件, 例如,propForB属性将具有BData,propForC属性将具有CData 如何做到这一点?特别是在vuejs2.0中?我会发送一个具有不同值的道具,以适合您的组件。。。例如: <router-view class="view"
<router-view class="view" :propForA="AData"></router-view>
我的问题是,如果我们需要将不同的道具传递给不同的路由组件,
例如,propForB属性将具有BData
,propForC
属性将具有CData
如何做到这一点?特别是在vuejs2.0中?我会发送一个具有不同值的道具,以适合您的组件。。。例如:
<router-view class="view" :propData="propToSend"></router-view>
当然,还有其他方法可以达到同样的效果……此解决方案在一定程度上有效,但并不完全符合我的要求。若要向属性添加包装器,我必须更改每个组件的定义对象,以便通过PropData.something和PropData.somethingElse检索道具。我喜欢它不改变成吨的遗留组件。刚才,我在路由器视图定义中给出了所有的道具数据,这看起来很难看,但是很有效。
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
}
}
}
}