vue父组件监听孙子组件?

想在A组件监听到c孙子组件表格勾选的数据,应该如何传递,现在写了两层emit传递到A组件,有什么更好的办法吗
回答:
用inject provide 最简单
vuex大材小用了
如果能用slot 把c插到b上 可以省一层emit传递  (因为A组件template里面就能看到C了)
回答:
可以尝试以下eventBus
回答:
vue双向绑定,如果prop是一个原始类型,比如字符串,子组件是不能直接修改prop的,
但是如果prop是一个对象,那么子组件就能修改,也能在父组件监听到
所以我觉得稍微修改一下数据结构就可以
父组件(以下代码手打,不保证单词都对)
<template>    这个是组件,反正就一层层的往下传也可以,或者用楼上说的 inject provide,或者vuex 来传,方法很多
    <child-box :tableObj="tableObj">
</template>
<script>
export default {
    data() {
        return {
            tableObj: {
                tableSelected: []
            }
        }
    },
    watch: {
        'tableObj.tableSelected': {
            handle(valArray){
                /** 监听数据变动 */
            },
            deep: true
        }
    }
}
</script>
回答:
推荐使用EventBus,可以试试https://github.com/developit/...,非常轻量
以上是 vue父组件监听孙子组件? 的全部内容, 来源链接: utcz.com/p/933343.html








