当前位置: 首页 > 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来进行接收

相关文章:

  • 第一节:基于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
  • 前端监控体系搭建
  • 淘宝客怎样做自己的网站推广/seo点击器
  • 香港主机做电影网站/收录优美的图片app
  • 青岛市城阳区建设局网站/网站seo批量查询工具
  • 海阳网站建设/企业网站建设的基本流程
  • 上海免费网站建设咨询/河南网站定制
  • 自己的服务器做网站/营销案例100例小故事