Vue 子组件的 updated 事件触发后,为什么父组件的 updated 事件不触发呢?

假设现在子组件只是一个按钮,按钮点击后会改变子组件的 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");

    }

})


人到中年有点甜
浏览 613回答 2
2回答

慕运维8079593

你改变子组件的数据是不会触发父组件的钩子的。Vue中的通信是单向的,父组件可以通过props来向子组件传递信息,也就是说子组件可以知道父组件的状态变化,而子组件的状态变化父组件是不知道的。如果你想让子组件向父组件发送信息,可以通过on和emit来指定和触发自定义事件来进行通信,或者也可以用vuex来实现这个功能。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript