vue如何自行实现派发与广播?一文带你搞明白
发布时间:2022-04-14 13:59:28 所属栏目:语言 来源:互联网
导读:这篇文章主要给介绍vue派发与广播,很多新手对于vue派发与广播可能还是不是很了解,因此这篇文章就给大家分享vue自行实现派发与广播,感兴趣的朋友可以看一看,希望大家阅读完这篇文章之后大有收获。 要解决的问题 主要针对组件之间的跨级通信 为什么要自己
这篇文章主要给介绍vue派发与广播,很多新手对于vue派发与广播可能还是不是很了解,因此这篇文章就给大家分享vue自行实现派发与广播,感兴趣的朋友可以看一看,希望大家阅读完这篇文章之后大有收获。 要解决的问题 主要针对组件之间的跨级通信 为什么要自己实现dispatch与broadcast? 因为在做独立组件开发或库时,最好是不依赖第三方库 为什么不使用provide与inject? 因为它的使用场景,主要是子组件获取上级组件的状态,跨级组件间建立了一种主动提供与依赖注入的关系。然后有两种场景它不能很好的解决: 父组件向子组件(支持跨级)传递数据; 子组件向父组件(支持跨级)传递数据。 代码如下: emitter.js function broadcast(componentName, eventName, params) { this.$children.forEach(child => { const name = child.$options.name; <template> <div> <h1>我是父组件</h1> <button @click="handleClick">触发事件</button> <child /> </div> </template> <script> import Emitter from "@/mixins/emitter.js"; import Child from "./child"; export default { name: "componentA", mixins: [Emitter], created() { this.$on("child-to-p", this.handleChild); }, methods: { handleClick() { this.broadcast("componentB", "on-message", "Hello Vue.js"); }, handleChild(val) { alert(val); ![]() (编辑:云计算网_泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |