关于vue.js中this.$emit的理解使用

 更新时间:2022年08月22日 11:41:42   作者:没离开过  
本文主要介绍了关于vue.js中this.$emit的理解使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

一、每个 Vue 实例都实现了事件接口

即:

1、使用 $on(eventName) 监听事件

2、使用 $emit(eventName, optionalPayload) 触发事件

二、注意事项

 1、父组件可以在使用子组件的地方直接用 v-on 来监听子组件触发的事件

 2、不能用 $on 监听子组件释放的事件,而必须在模板里直接用 v-on 绑定

三、例子及说明

1、父组件代码及说明

<template>
  <div>
    <p>{{ total }}</p>
    <my-button4 @increment1="incrementTotal1"></my-button4>     <!--自定义方法increment1监听子组件触发情况-->
    <my-button4 @increment2="incrementTotal2"></my-button4>     <!--自定义方法increment2监听子组件触发情况-->
  </div>
</template>

<script>
  import myButton4 from './components/myButton4.vue'
  export default{
    data(){
      return{
          total:0
      }
    },
    methods:{
      incrementTotal1: function () {                     /*事件incrementTotal触发*/
        this.total += 1
      },
      incrementTotal2: function () {                    /*事件incrementTota2触发*/
        this.total += 2
      }
    },
    components:{                        /*子组件的实例,要尽量放在最后,不然会出现一些不必要的问题*/
      myButton4
    }
  }
</script>

2、子组件代码及说明

<template>
      <button @click="incrementCounter">{{counter}}</button> <!--在子组件中创建一个按钮,创建点击事件-->
</template>

<script>
   export default{
     data(){
       return{
         counter: 0
       }
     },
     methods: {
       incrementCounter: function (){
         this.counter += 1
         this.$emit('increment1')        /*触发自定义事件increment1,也就是父组件中的incrementTotal1事件*/
         this.$emit('increment2')        /*触发自定义事件increment2,也就是父组件中的incrementTotal2事件*/
                                         /*这两个事件一次只会触发一个,为什么呢?很简单,因为每次只单击一个按钮*/
       }
     }
   }
</script>

3、运行截图

A、开始截图:

B、点击第一个按钮截图(+1)

C、点击第二个按钮截图(+2)

 四、总说明

1、首先看子组件件,按钮中给其绑定了方法:incrementCounter; 

2、点击button时会执行函数 incrementCounter,increment中有 this.$emit(‘increment1)和this.$emit(‘increment2),看点击的是哪个按钮就执行哪个; 

3、当incrementCounter执行时,就会触发自定函数increment1(点击第一个按钮的时候)或者increment(点击第二个按钮的时候),也就是incrementTotal1或者incrementTotal2函数; 

到此这篇关于关于vue.js中this.$emit的理解使用的文章就介绍到这了,更多相关vue.js this.$emit内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • vue中keepAlive组件的作用和使用方法详解

    vue中keepAlive组件的作用和使用方法详解

    vue里提供了keep-alive组件用来缓存状态,这篇文章主要给大家介绍了关于vue中keepAlive组件的作用和使用方法的相关资料,需要的朋友可以参考下
    2021-07-07
  • Vue2实时监听表单变化的示例讲解

    Vue2实时监听表单变化的示例讲解

    今天小编就为大家分享一篇Vue2实时监听表单变化的示例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 详解Vuex的属性

    详解Vuex的属性

    Vuex是专为Vue.js应用程序开发的状态管理模式,这篇文章主要介绍了Vuex的属性,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • vue中多个文件下载实现打包压缩下载示例

    vue中多个文件下载实现打包压缩下载示例

    这篇文章主要为大家介绍了vue中多个文件下载实现打包压缩下载的发发示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • vue项目实现背景颜色以及下划线从左到右渐变动画效果

    vue项目实现背景颜色以及下划线从左到右渐变动画效果

    这篇文章主要介绍了vue项目实现背景颜色以及下划线从左到右渐变动画效果,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • vue基于better-scroll仿京东分类列表

    vue基于better-scroll仿京东分类列表

    这篇文章主要为大家详细介绍了vue基于better-scroll仿京东分类列表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-06-06
  • vuex的几个属性及其使用传参方式

    vuex的几个属性及其使用传参方式

    这篇文章主要介绍了vuex的几个属性及其使用传参,本文结合实例代码给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-01-01
  • electron-vue+electron-updater实现自动更新(步骤源码)

    electron-vue+electron-updater实现自动更新(步骤源码)

    这篇文章主要介绍了electron-vue+electron-updater实现自动更新,步骤源码包括autoUpdater.js操控更新js文件,main.js也就是package.json内的main指向的js文件,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • IE9 elementUI文件上传的问题解决

    IE9 elementUI文件上传的问题解决

    这篇文章主要介绍了IE9 elementUI文件上传的问题解决,有需要了解IE9 elementUI文件上传的朋友可参考。希望此文章对各位有所帮助
    2018-10-10
  • Vue中使用vue-count-to(数字滚动插件)详细教程

    Vue中使用vue-count-to(数字滚动插件)详细教程

    这篇文章主要给大家介绍了关于Vue中使用vue-count-to(数字滚动插件)的相关资料,最近需要开发一个数字滚动效果,在网上找到一个关于vue-countTo的插件,觉得这个插件还不错,需要的朋友可以参考下
    2023-09-09

最新评论