广告
返回顶部
首页 > 资讯 > 精选 >Vue组件的自定义事件和全局事件总线怎么使用
  • 528
分享到

Vue组件的自定义事件和全局事件总线怎么使用

2023-07-05 02:07:24 528人浏览 安东尼
摘要

这篇“Vue组件的自定义事件和全局事件总线怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue组件的自定义事件和全局

这篇“Vue组件的自定义事件和全局事件总线怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue组件的自定义事件和全局事件总线怎么使用”文章吧。

一,自定义事件

1.自定义事件是什么

自定义事件一种组件间通信的方式,适用于 子组件 ——> 父组件传输数据等

2.要在什么地方使用

若App是父组件,School是子组件,School想给App传数据,那么就要在App中给School绑定自定义事件(事件的回调在App中),也就是父组件必须提前绑定一个自己定义的事件,供给子组件使用,这样才能完成父子间的数据沟通

就好比小a的父亲在外地打工,然后小a想他的爸爸了,然后呢他爸爸提前给了小a一个电话,对小a说,想我了就打这个电话,然后小a打完电话就能和他爸爸进行交流了,打电话就是进行了父组件的自定义事件的回调,所以数据就可以传给父组件

3.绑定自定义事件

1第一种方式,在父组件中: <Demo @shanyu="test"/> 或<Demo v-on: shanyu="test"/>

Vue组件的自定义事件和全局事件总线怎么使用

2第二种方式,在父组件中:<Demo ref="demo"/>mounted(){this . $refs. xxx. $on('shanyu' ,this. test)}

Vue组件的自定义事件和全局事件总线怎么使用

如果在一个自定义事件里写一个原生的事件的话,那么也会默认为自定义事件,所以我们用@xxx.native来解决这种问题 。

首先在父组件内写一个自定义组件(若想让自定义事件只能触发一次,可以使用once修饰符,或$once方法)

      // 在父组件内自定义个事件    getMyStudent(name) {      console.log("App收到学校名:", name);      this.studentName = name;    }  },  mounted() {    this.$refs.student.$on("shanyu", this.getMyStudent);  }

再找到子组件触发Student组件实例身上的shanyu事件

Vue组件的自定义事件和全局事件总线怎么使用

触发自定义事件:this. $emit( ' shanyu',数据)

    methods: {        sendStudentName(){            //触发Student组件实例身上的shanyu事件            this.$emit('shanyu',this.name)        }    }

4.解绑自定义事件

    unbind(){        this.$off('shanyu')// 只适用于解绑1个事件        this.$off(['shanyu','demo'])// 适用于解绑多个        this.$off()// 适用于解绑全部    }

注意:通过this. $refs . xxx. $on( 'shanyu',回调)绑定自定义事件时,回调要么配置在methods中,要么用箭头函数,否则this指向会出问题,从而引起vue报错

二,全局事件总线

1.什么是全局事件总线

一种组件间通信的方式,适用于任意组件间通信。和自定义事件一样但又远远超过自定义事件,它可以实现兄弟间通信

2.如何使用

这里主要涉及到三个文件main.js和俩兄弟组件,首先找到main.js就是有vm的那个文件,然后再vue实例里面安装全局事件总线,那为啥要放在beforCreate这个钩子里面呢?因为beforCreate这个声明周期钩子的特点就是在数据为刷新之前执行 $bus就是当前应用的vm,bus不只有公交车的意思还有总线的意思

new Vue({  el: "#app",  render: h => h(App),  // 使用beforCreate这生命周期钩子来进行兄弟间的通信  beforeCreate() {    Vue.prototype.$bus = this // 安装全局事件总线  }})

3.使用事件总线

1.接收数据

A组件想接收数据,则在A组件中给$bus绑定自定义事件,事件的回调留在A组件自身。methods(){mounted() {this . $bus . $on( 'xxxx' ,this . demo)}

<script>export default {  name: "School",  data() {    return {      name: "山鱼特效屋",      address: "南京北城区"    };  },  mounted() {    this.$bus.$on('shanyu', (data) => {      console.log("我是School组件,我收到了数据", data);    });  },  //使用完之后销毁该绑定事件避免后期错误使用  beforeDestroy() {    this.$bus.$off("hello")  },}</script>

2.提供数据

this.$bus.$emit( 'xxxx',传输数据)

<template>  <div class="demo">    <h3>学生姓名:{{name}}</h3>    <h3>学生性别:{{sex}}</h3>    <button @click="snedStudentName">点击将数据给兄弟School</button>  </div></template><script>export default {  name: "Student",  data() {    return {      name: "张三",      sex: "男"    };  },  // 配置一个methods项  methods: {      snedStudentName(){      // 选择给谁提供数据          this.$bus.$emit('shanyu',this.name)      }  },}</script>

注:最好在beforeDestroy钩子中,用$off去解绑当前组件所用到的事件。

以上就是关于“Vue组件的自定义事件和全局事件总线怎么使用”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: Vue组件的自定义事件和全局事件总线怎么使用

本文链接: https://www.lsjlt.com/news/348953.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue组件的自定义事件和全局事件总线怎么使用
    这篇“Vue组件的自定义事件和全局事件总线怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue组件的自定义事件和全局...
    99+
    2023-07-05
  • 一文浅析Vue组件的自定义事件和全局事件总线
    首先在父组件内写一个自定义组件(若想让自定义事件只能触发一次,可以使用once修饰符,或$once方法) // 在父组件内自定义个事件 getMyStudent(name) { console.log(&quo...
    99+
    2023-05-14
    Vue 组件
  • vue中怎么自定义全局组件
    这期内容当中小编将会给大家带来有关vue中怎么自定义全局组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Vue.use( plugin ):安装 Vue.js 插件。如...
    99+
    2022-10-19
  • vue自定义组件怎么添加使用原生事件
    今天小编给大家分享一下vue自定义组件怎么添加使用原生事件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。自定义组件如何添加使...
    99+
    2023-06-30
  • Vue组件中的自定义事件是什么
    小编给大家分享一下Vue组件中的自定义事件是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!主要介绍组件的自定义事件的概念,使用等。何为组件自定义事件:组件自定...
    99+
    2023-06-29
  • vue怎么给自定义的组件绑定点击事件
    这篇文章主要介绍“vue怎么给自定义的组件绑定点击事件”,在日常操作中,相信很多人在vue怎么给自定义的组件绑定点击事件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue怎么给自定义的组件绑定点击事件”的疑...
    99+
    2023-06-30
  • 自定义vue全局组件use、vuex怎么用
    这篇文章主要介绍了自定义vue全局组件use、vuex怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。自定义vue全局组件use使用(解...
    99+
    2022-10-19
  • vue自定义组件如何添加使用原生事件
    目录自定义组件如何添加使用原生事件. $emit()传递. native属性vue使用原生事件自定义组件如何添加使用原生事件 自定义组件(Components)是vue的重要知识块之...
    99+
    2022-11-13
  • Vue自定义组件使用事件修饰符的踩坑记录
    前言 今天在使用自写组件时,突然遇到久违的冒泡事件,就想着使用Vue自带的事件修饰符(.stop),本以为可以就此解决冒泡,却遇到这个问题。 脑中一片问号????这是什么鬼,我是...
    99+
    2022-11-12
  • 怎么实现Vue 自定义组件中hover事件以及 v-model
    这期内容当中小编将会给大家带来有关怎么实现Vue 自定义组件中hover事件以及 v-model,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在CSS中,很容易在鼠标ho...
    99+
    2022-10-19
  • Vue2中如何使用全局事件总线实现任意组件间通信
    目录前言: 一:什么是全局事件总线 二:全局事件总线怎么创建 三:绑定自定义事件四:触发自定义事件五:解绑自定义事件总结前言:  vue 中组...
    99+
    2022-12-28
    vue组件之间通信 vue组件通信 vue组件之间如何通信
  • vue子组件中怎么通过自定义事件向父组件传递数据
    这篇文章将为大家详细讲解有关vue子组件中怎么通过自定义事件向父组件传递数据,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。使用v-on绑定自定义事件可以让子...
    99+
    2022-10-19
  • vue中怎么自定义一个全局消息框组件
    这篇文章将为大家详细讲解有关vue中怎么自定义一个全局消息框组件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.发现问题在进行移动端适配的时候,为了在各个...
    99+
    2022-10-19
  • vue怎么自定义和使用开关组件
    这篇“vue怎么自定义和使用开关组件”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue怎么自定义和使用开关组件”文章吧。s...
    99+
    2023-06-29
  • Vue3中的事件总线怎么使用
    本篇内容介绍了“Vue3中的事件总线怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!事件总线的本质Vue2中的$on、$once、$e...
    99+
    2023-07-06
  • Vue3的事件处理和修饰符怎么定义使用
    本篇内容介绍了“Vue3的事件处理和修饰符怎么定义使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Vue事件处理是每个Vue项目的必要方面...
    99+
    2023-07-04
  • 详解怎么使用vue封装一个自定义日历组件
    执行这个方法之后,此时calendarProps的值为:4、根据日历属性生成日历日期的数据当我们已经知道本月第一天对应的周几索引值、本月一共有多少天和上个月一共有多少天这三个核心数据之后,就可以开始生成对应的日历数据了。思路如下:由于大部分...
    99+
    2023-05-14
    Vue.js 数据可视化 前端
  • vue怎么使用脚手架vue-cli创建并引入自定义组件
    小编给大家分享一下vue怎么使用脚手架vue-cli创建并引入自定义组件,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、创建并引入一个组件1、创建组件vue-cli中的所有组件都是存放在components文件夹下面的,...
    99+
    2023-06-29
  • vue在自定义组件上使用v-model和.sync的方法实例
    目录自定义事件自定义组件的v-model.sync 修饰符思考总结自定义事件 tips 推荐始终使用 kebab-case 的事件名。(v-on会将事件名自动转换为小写,避免匹配不到...
    99+
    2022-11-13
  • thinkphp的事件绑定、监听和订阅怎么使用
    这篇文章主要介绍了thinkphp的事件绑定、监听和订阅怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇thinkphp的事件绑定、监听和订阅怎么使用文章都会有所收获,下面我们一起来看看吧。事件是什么事件...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作