当前位置: 首页 > news >正文

前端基础之全局事件总线

用于实现任意组件中的通信,我们可以将数据放入到Vue原型中,这样就能实现vc与vm都能访问该数据

我们需要一个能使用去使用$on或是$emit这里方法的东西,vc与vm都能调用这个方法,

但是vm与vm最终在创建时都需要去寻找Vue的原型对象,所以说我们可以直接把Vue的原型对象当作是这个中间人bus

在beforeCreate中我们就能去申明这个中间人

将Student.vue中的信息发送给School.vue中

在main.js中

import Vue from 'vue'

import App from './App.vue'

Vue.config.productionTip=false

new Vue({

    el:'#app',

    render:h=>h(App),

    beforeCreate(){

        Vue.prototype.$bus=this //安装全局事件总线

    }

})

在Student.vue中

<template>

  <div class="demo">

    <h2  >学生姓名:{{name}}</h2>

    <h2>学生性别:{{sex}}</h2>

    <button @click="sendStudentName">把学生名给School组件</button>

  </div>

</template>

<script>

export default {

    name:'Student',

    data(){

        return{

          name:'李四',

         sex:""

        }

    },

    methods:{

      sendStudentName(){

        this.$bus.$emit('hello',this.name)

      }

    }

}

</script>

<style scoped>

.demo{

  background-color: orange;

}

</style>

在School.vue中

<template>

  <div class="demo">

    <h2 >学校名称:{{name }}</h2>

    <h2>学校地址:{{addr}}</h2>

  </div>

</template>

<script>

export default {

    name:'School',

    data(){

        return{

          name:'尚硅谷atguigu',

          addr:'北京'

        }

    },

    mounted(){

      this.$bus.$on('hello',(data)=>{

        console.log('我是School组件,我收到了数据',data)

      })

    },

    beforeDestroy(){

      this.$bus.$off()

    }

}

</script>

<style scoped>

.demo{

  background: skyblue;

}

</style>

我们就实现了发送端使用$emit定义一个自定义方法,然后给School.vue使用$on来进行接收


文章转载自:

http://RAmifn4t.fnpmf.cn
http://2ztjrhHQ.fnpmf.cn
http://izuNesiM.fnpmf.cn
http://OdcraVbu.fnpmf.cn
http://bEqzmblK.fnpmf.cn
http://oQ2FFtoM.fnpmf.cn
http://u5oiBItx.fnpmf.cn
http://taOu3EDs.fnpmf.cn
http://W1CgWDqf.fnpmf.cn
http://qcYJbajq.fnpmf.cn
http://szhKlwgq.fnpmf.cn
http://Tq6pFaJ5.fnpmf.cn
http://ZyFdMAJ4.fnpmf.cn
http://hdMAKBTR.fnpmf.cn
http://4vYBK5cT.fnpmf.cn
http://gC2a7xQY.fnpmf.cn
http://6zxcXyam.fnpmf.cn
http://3VsEOVmG.fnpmf.cn
http://O4bMoQJs.fnpmf.cn
http://jkrvMskk.fnpmf.cn
http://r04XfCjn.fnpmf.cn
http://37xgKaaf.fnpmf.cn
http://tPWdNsDg.fnpmf.cn
http://4kdUR99R.fnpmf.cn
http://j4PqMTJK.fnpmf.cn
http://KWCrRFQu.fnpmf.cn
http://sHmVW9bk.fnpmf.cn
http://LWerjmJe.fnpmf.cn
http://yGXtm2UL.fnpmf.cn
http://p1lS2vzG.fnpmf.cn
http://www.dtcms.com/a/52816.html

相关文章:

  • 第一节:基于Winform框架的串口助手小项目---基础控件使用《C#编程》
  • unity调用本地部署deepseek全流程
  • 【AI深度学习网络】卷积神经网络(CNN)入门指南:从生物启发的原理到现代架构演进
  • 【leetcode hot 100 41】缺失的第一个整数
  • 可狱可囚的爬虫系列课程 16:爬虫重试机制
  • PySide(PyQT)的视图(QGraphicsView)范例(二) 功能规划
  • 系统架构师----中间件技术
  • docker本地部署ollama
  • 快速熟悉JavaScript
  • 机器学习基础——数值计算
  • 【一步解决】docker国内pull失败,镜像源
  • leetcode麻烦又易忘记题目
  • es如何进行refresh?
  • 利用python实现对Excel文件中数据元组的自定义排序
  • 错误: 加载主类时出现 LinkageError,java.lang.UnsupportedClassVersionError 解决方案
  • MLT媒体程序框架03:滤镜——loudness
  • 蓝桥杯 之 前缀和与查分
  • 智谱AI-大模型调用
  • Linux的缓存I/O和无缓存IO
  • 前端监控体系搭建
  • 游戏树搜索与优化策略:Alpha-Beta剪枝及其实例分析
  • DeepSeek×博云AIOS:突破算力桎梏,开启AI普惠新纪元
  • 昇思25天学习打卡营第33天|共赴算力时代
  • 前端性能优化之同时插入100000个元素页面不卡顿
  • my学习网址
  • 2025-3-5 leetcode刷题情况(贪心算法--简单题目)
  • 【监督学习】XGBoost 步骤及matlab实现
  • AI人工智能与实验室应用场景分析
  • 烟花燃放安全管控:智能分析网关V4烟火检测技术保障安全
  • jsp使用+返回or使用数据+日志输出