美文网首页前端
Vuejs中兄弟组件之间通信的方式

Vuejs中兄弟组件之间通信的方式

作者: Supreme_Monster | 来源:发表于2017-06-30 13:37 被阅读0次

   最近在做一个个人的博客网站,用到的技术栈是Vuejs2.0,后端是SpringBoot+MyBatis,碰到过大大小小的问题,这篇文章主要来谈谈Vuejs中兄弟组件之间通信的方式。

  Vue自身为组件通信提供的统一解决方式是Vuex,借鉴了React中的Redux,大体的思路就是采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化,实际上就是把组件间的通信都转变为和store之间的通信,更加方便管理,但是我们个人的项目中还用不到这么强大的Vuex,反而是冗余的,因此,我采用了另一种方式叫做EventBus。

   EvenetBus的实现原理其实也是和Vuex差不多,重新实例化一个Vue对象作为中央事件总线,也就是兄弟组件之间通信的中介。

  我们创建一个Bus.js文件,目的就是为了实例化一个新的Vue对象,

import Vue from 'vue';

export default new Vue();

 我的目的是整个页面是文章详情,有两个子组件,左边是分类列表,右边是根据文章分类查找出所有文章列表,显然要通过左边的组件向右边传递分类的参数,根据EventBus提供的Bus.emit()方法传参,列表点击绑定change方法,传递的是value值,我们需要通过一些处理得到分类的名称,我们左边组件的代码如下:

change(index){

let value=this.$refs.category_a[index].innerHTML.trim('');

value=value.substr(0,value.indexOf('('));

Bus.$emit('getPhotos',value);

},

右边文章列表接受方式自然就是Bus.on()方法,代码如下:

Bus.$on('getCategory',target=>{

this.$http.get(`http://localhost:8080/news/select/category/${target}`).then((res)=>{

      this.category=target;

      this.items=res.body;

}).catch(err=>{

console.log(err);

})

});

}

  这样就实现了两者之间的通信。

相关文章

  • Vuejs中兄弟组件之间通信的方式

    最近在做一个个人的博客网站,用到的技术栈是Vuejs2.0,后端是SpringBoot+MyBatis,碰到过大...

  • vue Bus总线

    vue中我们经常遇到组件之间的通信,通常的通信方式有 父 → 子、子 → 父、兄弟组件 之间的通信。通常处理方式...

  • Vuejs 用$emit与$on来进行数据传输通信

    Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信 Vuejs 用$emit与$on来进行跨页面之间...

  • Vue组件间通信

    通信有4种情况 父组件向子组件子组件向父组件兄弟组件之间隔代组件之间 实现通信的方式 propsvue自定义事件消...

  • Vue组件通信

    总体来说,Vue中组件之间的通信场景如下图: 可以将其分为父子组件通信、兄弟组件通信、跨级组件通信。 1. 自定义...

  • React的组件通信

    组件之间进行通信的情况: 父组件向子组件通信 子组件向父组件通信 兄弟组件之间通信 发布者-订阅者模式 一、父组件...

  • vue组件之间的数据传递(通信)

    种类 父组件跟子组件通信 子组件跟父组件通信 兄弟组件之间的通信 父组件如何将数据传到子组件中 可以通过prop将...

  • 老生常谈——vue组件之间通信

    老生常谈的组件之间通信 vue组件之间的通信细分为三种情况:兄弟组件之间的通信,父组件向子组件传递数据,子组件向父...

  • vue 组件通信方式 ,父子、隔代、兄弟 三类通信,六种方法

    Vue 组件间通信只要指以下 3 类通信:父子组件通信、隔代组件通信、兄弟组件通信,下面分别介绍每种通信方式且会说...

  • Vue开发:组件之间的数据传递

    问题:兄弟组件之间的通讯(EvenBus的通信方式)解决方式: 问题:Vue生命周期的理解解决方式: 问题: vu...

网友评论

    本文标题:Vuejs中兄弟组件之间通信的方式

    本文链接:https://www.haomeiwen.com/subject/rbgbcxtx.html