广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >关于vue.js中this.$emit的理解使用
  • 957
分享到

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

2024-04-02 19:04:59 957人浏览 安东尼
摘要

目录一、每个 Vue 实例都实现了事件接口二、注意事项三、例子及说明 四、总说明一、每个 Vue 实例都实现了事件接口 即: 1、使用 $on(eventName) 监听事

一、每个 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 () {                     
        this.total += 1
      },
      incrementTotal2: function () {                    
        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')        
         this.$emit('increment2')        
                                         
       }
     }
   }
</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内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 关于vue.js中this.$emit的理解使用

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

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

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

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

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作