【发布时间】:2017-06-14 16:58:45
【问题描述】:
我有孩子component 并想将一些数据传递给它的父母。
我的子组件如下所示:
// <button @click="sendClick($event)">Send</button>
// ...
data: function (){
return {
mycode: ""
}
},
methods: {
sendClick(e)
{
bus.$emit('change', this.mycode);
}
}
我的父组件看起来:
var app = new Vue({
el: '#app',
data: {
currentView: 'past-form',
mycode: ''
},
methods:
{
changeView()
{
this.currentView = 'past-form'
console.log(this.mycode);
},
},
created()
{
bus.$on('change', function(mycode){
this.mycode = mycode;
});
}
})
我还没有找到比在
created()中放置bus.$on(bus被全局声明)更好的地方,但文档声明created()用于应该在页面已加载。created()块有效;我通过将其放入console.log(this.mycode)来检查它,但我应该将发射处理程序移到其他地方吗?看起来我的代码没有执行
mycode: '',因为console.log(this.mycode);没有打印任何东西。
【问题讨论】:
-
如果您的孩子是 Vue 的直接孩子,则不需要总线。
标签: vue.js