想法:在Header.vue里面有一个方法changeTitle,当触发changeTitle方法时,App.vue中的title值被改变
实现流程:Header.vue的方法。在changeTitle方法中注册一个事件
methods: {
changeTitle: function(){
// this.title = 'changed';
this.$emit("titleChanged", "子向父组件传值");//$emit(注册的事件名,传的内容)
}
}
当触发changeTitle方法时,会去找titleChanged,看谁使用了titleChanged。即在App.vue的app-header节点中绑定事件
<app-header v-on:titleChanged="updateTitle($event)" v-bind:title="title"></app-header>
其中updateTitle($event)是在App.vue中要实现的方法,而$event是固定写法,接收Header.vue中的this.$emit()第二个参数值。
在App.vue中实现updateTitle()方法
methods: {
updateTitle: function(title){
this.title = title;//其中this.title是App.vue中的title属性,而title是该方法中得形参,也是上面传递的$event
}
},
改变了App.vue中title属性的值,及对应的绑定过title属性的组件