多个组件需要反映相同的变化数据,这时我们建议将共享状态提升到最近的共同父组件中去
多组件之间数据交互 将共享状态提升至父组件 统一下发。
备注:找多个组件共享状态。找到之后提升到父组件。
案例:
![](https://img-blog.csdnimg.cn/img_convert/1c388f72eac94b2592ad61fd7b7de9a3.png)
父组件:
![](https://img-blog.csdnimg.cn/img_convert/6ec5d39a5d924ba5bab68fcce449834d.png)
![](https://img-blog.csdnimg.cn/img_convert/e2cec278cbba44ff8d1d581f6f6983d2.png)
项目中:
![](https://img-blog.csdnimg.cn/img_convert/2a32f80c3f7a468e90f4e3b160e7cb86.png)
兄弟组件之间通信
使用插件传:
cnpm i --save-dev mitt
注意:使用事件车通信先监听在触发。
npmjs官网:
https://www.npmjs.com/package/mitt
![](https://img-blog.csdnimg.cn/img_convert/941a0450fadc445583a4a11de8a217f7.png)
![](https://img-blog.csdnimg.cn/img_convert/446e35191ae04fb98dd032f0a659c89a.png)
直接触发
//点击触发
mitter.emit("sendMsg");
//触发传递数据
mitter.emit("sendMsg", params);
监听
//组件挂载完成 自动监听
//参数1.监听的事件类型
//参数2.监听的回调函数
mitter.on("sendMsg", (query) => {
console.log("监听到了",query);
});
//解决了 兄弟之间传值 跨层级传值。