Vue:非父子组件间的传值--bus(总线/观察者模式/发布订阅模式)
2020-01-14 03:19
309 查看
非父子组件间的传值
通过在Vue.prototype上绑定bus属性,在之后所创建的vue实例都具有bus这个属性,子属性接收到数据后,通过emit向父组件传值,通过每个组件都含有的生命周期钩子mounted,创建方法通过this.bus.$on触发传值的事件并接收所传的值
<div id="app"> <child content="Box"></child> <child content="Min"></child> </div> <script> //在生成vue实例前,给Vue的原型上添加一个bus属性,这个属性是vue的实例, //之后创建的vue实例都具有bus这个属性 Vue.prototype.bus = new Vue() Vue.component('child',{ data: function(){ return { selfContent: this.content } }, props:['content'], template: '<div @click="hdclick">{{selfContent}}</div>', methods:{ hdclick: function() { //向父组件传值,触发事件change this.bus.$emit('change',this.selfContent) } }, mounted: function() { //因为this的指向发生了变化,不用箭头函数的话就要先把this保存起来 var this_ = this //监听事件change this.bus.$on('change',function(msg){ this_.selfContent = msg }) } }) var app = new Vue({ el:"#app", })
- 点赞 1
- 收藏
- 分享
- 文章举报
相关文章推荐
- 非父子组件之间的传值(Bus/总线/发布订阅模式/观察者模式)
- vue非父子组件传值之发布订阅模式
- vue学习18:非父子组件间的传值(bus/总线/发布订阅者模式/观擦者模式)
- 非父子组件传值(Bus/总线/发布订阅者模式/观察者模式)
- Vue学习笔记4.5 非父子组件之间的数据传递(bus机制/订阅者模式/观察者模式)
- JavaScript设计模式系列05_观察者模式(发布订阅)写的数据联动(类似于vue的数据绑定)
- vue非父子组件间传值(发布订阅模式)
- Vue 组件的通信方式(父子通信、子父通信,非子父(ref链、bus总线))
- vue 事件总线( vue-bus)非父子组件传值
- 观察者模式(发布、订阅)之(上) 李朝强 李朝强
- JAVA设计模式——观察者模式(发布-订阅模式)
- 发布订阅模式在vue中的实际运用实例详解
- javascript-发布订阅模式与观察者模式
- 设计模式(二)观察者模式和发布订阅模式(Observer)
- 观察者模式(发布-订阅)
- redis的观察者模式----------发布订阅功能
- 观察者模式和发布/订阅模式的区别
- 设计模式二:观察者模式(发布订阅模式)
- JavaScript设计模式 - 订阅发布模式(观察者模式)
- C++之观察者模式(订阅-发布模式)