假设现在子组件只是一个按钮,按钮点击后会改变子组件的 data 数据。为什么这样子操作只会触发子组件的 updated 而不会触发父组件的 updated 呢?有没有什么方法是不修改子组件的情况下,在父组件捕获子组件的这种更新呢?<div id="app"> <abc></abc></div>Vue.component("abc",{ name:"abc", template:`<div @click="add()">{{hi.a}}</div>`, data(){ return{ hi:{a:"1"} } }, methods:{ add(){ this.hi.a = this.hi.a + "1"; } }, updated(){ console.log("com-updated"); }});new Vue({ el: '#app', updated(){ console.log("updated"); }})
2 回答

慕运维8079593
TA贡献1876条经验 获得超5个赞
你改变子组件的数据是不会触发父组件的钩子的。Vue中的通信是单向的,父组件可以通过props
来向子组件传递信息,也就是说子组件可以知道父组件的状态变化,而子组件的状态变化父组件是不知道的。
如果你想让子组件向父组件发送信息,可以通过on
和emit
来指定和触发自定义事件来进行通信,或者也可以用vuex
来实现这个功能。
添加回答
举报
0/150
提交
取消