现在有三个组件 parent
son
grandSon
(都是异步加载的)
结构如下parent.vue
<son msg="son"/>
son.vue
<grandSon msg="grandSon"/>
grandSon.vue
<div>{{msg}}</div>
请问如何在 parent.vue 监听到 son.vue grandSon.vue
都挂载完成的方案?
尝试过 使用 @hook:mounted
但是在多层级的场景下(目前我是三个层级),有没有更优雅的方式?
首先说下,为什么Vue的设计一开始无法透传,后面才陆续地加入跨父子传输的方式,是因为希望数据流能够单向清晰。但这样也造成了使用上的麻烦。
要完成你的需求有很多种方法。这里提供一种最简单易理解的方法。
我们将通过全局Mixin为每个组件增加上报事件的钩子,并在上层进行收集。
封装成工具函数可以是: