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

发布时间 - 2026-01-10 23:15:00    点击率:

最近在学习vue组件鸡组件之前通信问题,正好看到,以此来留作笔记。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>Vue2-单一事件管理组件通信</title>
  <script src="vue.js"></script>
  <script type="text/javascript">

  //准备一个空的实例对象
  var Event = new Vue();

  //组件A
  var A = {
    template: `
      <div>
        <span>我是A组件的数据->{{a}}</span>
        <input type="button" value="把A数据传给C" @click = "send">
      </div>
    `,
    methods: {
      send () {
        Event.$emit("a-msg", this.a);
      }
    },
    data () {
      return {
        a: "我是a组件中数据"
      }
    }
  };
  //组件B
  var B = {
    template: `
      <div>
        <span>我是B组件的数据->{{a}}</span>
        <input type="button" value="把B数据传给C" @click = "send">
      </div>
    `,
    methods: {
      send () {
        Event.$emit("b-msg", this.a);
      }
    },
    data () {
      return {
        a: "我是b组件中数据"
      }
    }
  };
  //组件C
  var C = {
    template: `
      <div>
        <h3>我是C组件</h3>
        <span>接收过来A的数据为: {{a}}</span>
        <br>
        <span>接收过来B的数据为: {{b}}</span>
      </div>
    `,
    mounted () {
      //接收A组件的数据
      Event.$on("a-msg", function (a) {
        this.a = a;
      }.bind(this));

      //接收B组件的数据
      Event.$on("b-msg", function (a) {
        this.b = a;
      }.bind(this));
    },
    data () {
      return {
        a: "",
        b: ""
      }
    }
  };
  window.onload = function () {
    new Vue({
      el: "#box",
      components: {
        "dom-a": A,
        "dom-b": B,
        "dom-c": C
      }
    });
  };


  </script>
</head>
<body>
  <div id="box">
    <dom-a></dom-a>   
    <dom-b></dom-b>   
    <dom-c></dom-c>   
  </div>

</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# vue  # 兄弟组件通信  # vue组件通信  # emit  # 传参  # vue之父子组件间通信实例讲解(props、$ref、$emit)  # Vue.js每天必学之组件与组件间的通信  # Vuejs第十篇之vuejs父子组件通信  # Vue组件通信之Bus的具体使用  # 详解Vue 非父子组件通信方法(非Vuex)  # vue中的$emit 与$on父子组件与兄弟组件的之间通信方式  # Vue 之孙组件向爷组件通信的实现  # vue中组件通信的八种方式(值得收藏!)  # 深入探讨Vue.js组件和组件通信  # vue实现组件通信的八种方法实例  # 我是  # 大家多多  # script  # title  # meta  # charset  # UTF  # javascript  # var  # Event  # src  # type  # text  # class  # brush  # js  # br  # pre  # lt 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 东莞市网站制作公司有哪些,东莞找工作用什么网站好?  Laravel如何为API生成Swagger或OpenAPI文档  Laravel如何使用Collections进行数据处理?(实用方法示例)  如何在万网主机上快速搭建网站?  高端企业智能建站程序:SEO优化与响应式模板定制开发  Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  零服务器AI建站解决方案:快速部署与云端平台低成本实践  黑客如何利用漏洞与弱口令入侵网站服务器?  JavaScript如何实现错误处理_try...catch如何捕获异常?  Laravel集合Collection怎么用_Laravel集合常用函数详解  java获取注册ip实例  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  如何在Windows服务器上快速搭建网站?  如何在腾讯云服务器上快速搭建个人网站?  laravel怎么使用数据库工厂(Factory)生成带有关联模型的数据_laravel Factory生成关联数据方法  Windows Hello人脸识别突然无法使用  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  如何在万网自助建站平台快速创建网站?  Laravel如何使用Service Container和依赖注入?(代码示例)  香港服务器部署网站为何提示未备案?  Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】  如何在IIS7上新建站点并设置安全权限?  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  如何在 Pandas 中基于一列条件计算另一列的分组均值  Laravel怎么调用外部API_Laravel Http Client客户端使用  邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?  敲碗10年!Mac系列传将迎来「触控与联网」双革新  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  如何自定义建站之星网站的导航菜单样式?  青岛网站建设如何选择本地服务器?  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  JavaScript如何实现继承_有哪些常用方法  音响网站制作视频教程,隆霸音响官方网站?  如何在IIS中新建站点并解决端口绑定冲突?  JS去除重复并统计数量的实现方法  微信小程序 五星评分(包括半颗星评分)实例代码  百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧  微信推文制作网站有哪些,怎么做微信推文,急?  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  android nfc常用标签读取总结  EditPlus中的正则表达式 实战(4)  如何实现建站之星域名转发设置?  Laravel怎么判断请求类型_Laravel Request isMethod用法  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Laravel如何设置自定义的日志文件名_Laravel根据日期或用户ID生成动态日志【技巧】  C#如何调用原生C++ COM对象详解  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】