Vue总线Bus兄弟组件传参

一、前言

   使用场景:在vue项目较小的情况,使用bus总线思路来完成vuex的传值功能。

二、内容

、、、

//util.js

export default class Bus {

  constructor() {

    this.callbacks = {}

  }

  $on(name, fn) {

    this.callbacks[name] = this.callbacks[name] || []

    this.callbacks[name].push(fn)

  }

  $emit(name, args) {

    if (this.callbacks[name]) {

      // 存在 遍历所有callback

      this.callbacks[name].forEach(cb => cb(args))

    }

  }

}

//mai.js

import Bus from './utils/bus'

Vue.prototype.$bus = new Bus()


//组件A

this.$bus.$on('log', content => {

      console.log(content)

    })

//组件B

this.$bus.$emit('log', 120)

//父组件

<template>

  <div class="home">

    <demo1 :msg1="msg111" />

    <demo2 :msg2="msg222" />

  </div>

</template>

、、、

总结:

    Vue-Bus是一种总线思想,即各个兄弟组件通过Bus(即Vue实例)进行参数传递!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 对于vue来说,组件之间的消息传递是非常重要的,下面是我对组件之间消息传递的各种方式的总结,总共有8种方式。 1....
    edc余悸阅读 2,924评论 0 3
  • 组件的基础 # 组件基础 ## 什么是组件 >对我们的页面中的共用的元素,进行拆分,单独做成一个模块,方便后续的使...
    考拉_2044阅读 2,635评论 0 0
  • 原地址:vue -- 非父子组件传值,事件总线(eventbus)的使用方式 - 积少成多 - CSDN博客 下面...
    L_b115阅读 3,795评论 0 0
  • 对于vue来说,组件之间的消息传递是非常重要的,下面是我对组件之间消息传递的各种方式的总结,总共有8种方式。 pr...
    紫痕蓝羽阅读 3,038评论 0 0
  • 原文: 常常做有意义的事情,慢慢的你一定会觉得你的工作有意思。从有意义到有意思,要有一个过程。但只要是正确的...
    张琪77阅读 1,058评论 0 0

友情链接更多精彩内容