Vue.js 2.0中$on与$emit如何使用之实例讲解

Vue2之借助中间实例及$on与$emit方法实现两个不相干的组件之间通信 阅读详情

先对两个方法来一波解释

vm.$on(event,callback)

参数:

{string | Array} event (数组只在 2.2.0+ 中支持)
{Function} callback

用法:

监听当前实例上的自定义事件。事件可以由vm.$emit触发。回调函数会接收所有传入事件触发函数的额外参数。

示例:

vm.$on('test', function (msg) {   
console.log(msg) 
}) 
vm.$emit('test', 'hi') 
// => "hi"

vm.$emit(event,[args])

参数:

{string} event
[…args]

触发当前实例上的事件。附加参数都会传给监听器回调。

上面是官方的api,很简洁,粗略一看很容易误解,这里主要是$on的用法,这里回过头去看一下$on的用法,$on是监听当前实例上的自定义事件,这个自定义事件可以由$emit来触发,$on回调函数接收的msg便是$emit方法第二个参数传过来的值。当然你也可以在回调函数里不使用msg参数而执行其他操作。

下面是实例:

再定义一个组件(一个计数的组件)

Vue.component('simple-com',{
    template:'<button v-on:click="incresone">{{count}}</button>',
    data:function(){
        return {
            count:0
        }
    },
    methods:{
        incresone:function(){
            this.count+=1
            //监听自定义的事件
            this.$on('increment',function(msg){
                //获取$emit方法传递的第二个参数
                console.log(msg);
                alert("1");
            })
            //触发自定义的事件
            this.$emit('increment',this.count)
        }
    }
   })

再使用组件

    <simple-com v-on:increment="incretol"></simple-com>
    <simple-com v-on:increment="incretol"></simple-com>
    <simple-com v-on:increment="incretol"></simple-com>
    <p>{{total}}</p>

实例化vue的代码

var vm = new Vue({
    el:"#app",
    data: {
        total:0
    }
    methods:{
        incretol:function(){
                this.total+=1
            }
    }
})

当我点击计数的时候,$on监听increment事件,当increment事件执行时,便会弹出1,然后再继续执行后面的代码。

当然$emit方法传递的第二个参数也能获取到

这里写图片描述

芯片设计中的“隐形杀手”:手把手教你理解并优化互连寄生参数(以SPEF/DSPF为例) 本文深入探讨了芯片设计中互连寄生参数的影响及优化策略,特别关注SPEF/DSPF文件解析与静态时序分析。通过实际案例展示了耦合电容对时序收敛的关键影响,并提供从定位到优化的完整解决方案,助力工程师应对先进工艺下的设计挑战。 阅读详情

相关推荐

Microchip Studio 7.0 从下载到项目调试:AVR开发者的完整入门指南(附常见问题解决)

本文为AVR开发者提供了Microchip Studio 7.0从下载安装到项目调试的完整入门指南。详细介绍了如何获取安装包、创建第一个AVR工程项目,并配置编译与调试环境。同时,文章重点解决了开发过程中常见的编译错误和仿真问题,帮助开发者快速上手并高效使用这一官方集成开发环境。

joy55的博客 332

vue2开发中实例事件总结($on,$once,$off,$emit,$root,$refs,$parent 的使用)

1.实例事件就是在构造器外部调用构造器内部的数据。 2.使用场景:比如构造器已经有一个加的方法,现在还要做一个减的方法,而我又不想动构造器里面的信息,那就可以使用实例事件了. 操作如下: 与on对应的还有一个on对应的还有一个on对应的还有一个once,上述代码只改一个单词$once app.$once('reduce',function(){ console.log("减...

知其白,守其黑;和其光,同其尘。 2133

AVEVA PDMS 二次开发之PML实战:从宏到自定义窗体的效率提升

本文详细介绍了AVEVA PDMS二次开发中PML语言的应用,从基础宏编写到高级窗体开发,全面提升工程设计效率。通过实战案例展示如何利用PML实现批量操作、流程自动化和交互优化,帮助工程师快速掌握这一强大工具。

weixin_42549451的博客 338

vue2 简单说明 $emit $on $off 的使用,防止$on多次触发

介绍 1.$emit:触发当前实例上的事件。附加参数都会传给监听器回调。 2.$on:监听当前实例上的自定义事件。事件可以由vm.$emit触发。回调函数会接收所有传入事件触发函数的额外参数。 3.$off:移除自定义事件监听器。 场景 从详情页回到列表页时,把详情页的参数带回到列表页。 也可以说是在列表页监听并接收详情页在该事件的回调。 方法 1. 先在项目中新建一个js文件(eventbus.js),内容为: import Vue from 'vue' e...

mossbaoo的博客 2603

Agent 长期记忆三代演进:从 RAG 到 Memory Graph,mem0 / Zep / LangMem / Letta 深度横评

文章摘要 2026年,Agent长期记忆技术迎来关键突破,OpenAI、Anthropic等厂商通过扩大上下文窗口和推出记忆工具,推动长期记忆从工程补丁发展为独立技术层。本文通过分析三代记忆架构演进(RAG→结构化Fact→MemoryGraph)和四大方案(mem0/Zep/LangMem/Letta)的8维度横评,揭示以下核心观点: 长上下文≠长期记忆:128K上下文如同RAM,仍需硬盘式记忆层筛选和结构化存储,避免“Context Rot”导致的准确率下降。 三代架构演进: Gen1(RAG):向量检

LDZKKJ的博客 1395

【Claude Code】Claude Code 使用指南

本文介绍了AI编码助手Claude的基础和进阶操作指南。基础部分涵盖启动命令、模式切换(自动编辑/Plan/Yolo模式)、资源监控等核心功能,重点讲解了斜杠命令的使用方法。进阶操作详细说明了CLAUDE.md文件的创建与管理,包括项目规范、代码风格等内容的配置,以及如何通过该文件建立持久上下文。同时提醒了使用过程中的安全风险,建议通过配置文件限制AI对关键代码的访问权限。全文提供了完整的操作指引和安全建议,帮助开发者高效安全地使用Claude进行编码辅助。

大家好,我是敖云岚,一个沉迷代码的 “技术玩家”。擅长 Java、C++ 开发,对 MySQL、Redis、RabbitMQ 等技术也颇有研究。博客里既有硬核技术干货,也有诙谐幽默的编程日常分享。愿和你一起,笑着学技术,快乐敲代码! 1万+

关于Vue2&3的$emit和$on发布订阅模式

emit和$on是Vue.js中用于实现组件间通信的方法,不过它们在中的使用场景和方式略有不同,下面分别进行介绍。

云散的博客 1332

无人机航拍实战:如何用Python代码精准计算目标地理坐标(附完整代码)

本文详细介绍了如何利用Python代码实现无人机航拍图像中目标点的精准地理位置计算。通过解析从像素坐标系到WGS84大地坐标系的完整转换链条,结合相机内参、无人机姿态与地球曲率处理,提供了可直接运行的实战代码,并重点分析了地理位置计算中的常见误差来源与应对策略,助力开发者解决实际项目中的定位漂移问题。

hh234的博客 356

vue2开发中$emit 、$on 、$once 、$off 的使用, vue中$root、$refs、$parent 的使用

一、vue2开发中$emit 、$on 、$once 、$off 的使用 简单概述: 1、vm.$emit(eventName,callback) 和$on(eventName,callback) 一般结合使用。使用$emit触发当前实例上的自定义事件(并将附加参数都传给监听器回调),使用$on 监听该事件并调用回调函数。这两个事件方法可以结合props 属性实现父子组件双向传参。...

zhouzuoluo的博客 1万+

RH850 GreenHillSoftware Install

IDE一次链接到一个Compiler/Green Hills Debug Probe安装目录。如果您安装了IDE、编译器和绿山调试探测器软件,安装程序会将安装链接在一起。如果您只使用Advanced Install选项安装IDE,那么当您第一次启动它时,IDE会提示您链接到编译器和绿山调试探针安装*。如果您使用Advanced Install选项只安装编译器和绿山调试探针软件,安装程序会提示您将IDE的安装链接到新的编译器和绿山调试探针安装。

舊梦的博客 1212

晶体管-二极管三极管MOS管选型参数总结

二极管三极管和MOS管,是电路中常用的控制电流电压的基本电子元器件。电路世界中晶体管的选型,需要考虑的参数多种多样,这些参数的选择会直接影响到电路的性能、稳定性、成本等多个方面。本文对二极管三极管和MOS管的选型参数进行详细介绍并总结。

fydar的博客 882

Vue.js 2.0 中$on与$emit如何使用之实例讲解

先对两个方法来一波解释 vm.$on(event,callback) 参数: {string | Array} event (数组只在 2.2.0+ 中支持) {Function} callback 用法: 监听当前实例上的自定义事件。事件可以由vm.$emit触发。回调函数会接收所有传入事件触发函数的额外参数。 示例: vm.$on('test', function (msg) {...

weixin_42729938的博客 487

拆开它的“身体”,看懂割草机器人的五层系统架构

这篇文章深入解析了智能割草机器人的五层系统架构。机械层采用铝合金一体式车架和独立悬挂刀盘系统;电子层配备双处理器和多种传感器;固件层实现毫秒级安全响应;算法层融合多种定位技术实现厘米级精度;云服务层提供远程管理和AI优化。这套系统通过精密协同实现了智能割草的全流程闭环,展现了从机械结构到云端智能的完整技术栈,为户外智能设备设立了新的技术标杆。

智能硬件研发,欢迎交流 196

vue.js $emit,$on的使用

vue1.0中 vm.$dispatch 和 vm.$broadcast 被弃用,改用$emit,$on vm.$on( event, callback ) 监听当前实例上的自定义事件。事件可以由vm.$emit触发。回调函数会接收所有传入事件触发函数的额外参数。 vm.$emit( event, […args] ) 触发当前实例上的事件。附加参数都会传给监听器回调。 例子: ...

lixiwoaini的博客 1万+

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

vue中$emit与$on和BUS

bus: /vue原型链挂载总线 Vue.prototype.bus = new Vue(); //子组件发送数据 this.bus.$emit("change",data); //子组件接收数据 this.bus.$on("change",function(data){ }) vue中$emit与$on var Event = new Vue();      相当于又new了一个vue实例,Event中含有vue的全部方法; Event.$emit('msg',th

jerryyang_2017的博客 1252

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

21$emit与$on

emit与emit与emit与on $on $emit应用场景 子组件中触发在父组件中定义的方法 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ...

徐海兴的专栏 1175

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

vue中$on和$emit用法理解

很期待奇门遁甲这部电影,谁是老大?伍佰一开口就仿佛回到了挪威的森林、突然的自我时代,哈哈哈,且看我独孤九剑向天涯…… 回归正题,在vue中有这样的一个方法,$on,$emit,就在开发中,我用的比较多的是$emit,对,就是传递一个函数方法。用过的人都知道!! 今天在走查项目代码的时候,看到旁边大神用到了一组方法,$on 、 $off、 然后接着$emit  理解不是特别透,随即请教了 ,这

curry_zhao的博客 1万+

Vue.js 2.0 中#$on与$emit如何理解使用

先看看官方文档的解释 vm.$on( event, callback ) 参数 {string | Array} event (数组只在 2.2.0+ 中支持) {Function} callback 用法 监听当前实例上的自定义事件。事件可以由vm.$emit触发。回调函数会接收所有传入事件触发函数的额外参数。 示例 vm.$on('test', function (msg)...

想搞全栈的前端 981

vue的$on,$emit

使用 $on(eventName) 监听事件使用 $emit(eventName) 触发事件 Api 中的解释: vm.$emit( event, […args] ) 参数: {string} event[…args]触发当前实例上的事件。附加参数都会传给监听器回调。 vm.$on( event, callback ) 参数: {string | Array} event ...

NDSC1994的博客 297

vue2.0 $emit $on组件通信

在vue1.0中父子组件通信使用$dispatch 和 $broadcast,但是在vue2.0中$dispatch 和 $broadcast 已经被弃用。 因为基于组件树结构的事件流方式实在是让人难以理解,并且在组件结构扩展的过程中会变得越来越脆弱。这种事件方式确实不太好,我们也不希望在以后让开发者们太痛苦。并且$dispatch和$broadcast也没有解决兄弟组件间的通信...

211

Vue.js 2.0 中#$on与$emit如何使用之实例讲解

先对两个方法来一波解释vm.$on(event,callback)参数: {string | Array} event (数组只在 2.2.0+ 中支持) {Function} callback用法: 监听当前实例上的自定义事件。事件可以由vm.$emit触发。回调函数会接收所有传入事件触发函数的额外参数。示例:vm.$on('test', function (msg) { consol

似码非码的博客 1万+

Vue 2.0常用传值方式 父传子、子传父、非父子组件传值,及$emit,$on问题

Vue 2.0常用传值方式 父传子、子传父、非父子组件传值 https://blog.csdn.net/lander_xiong/article/details/79018737 在Vue的框架开发的项目过程中,经常会用到组件来管理不同的功能,有一些公共的组件会被提取出来。这时必然会产生一些疑问和需求?比如一个组件调用另一个组件作为自己的子组件,那么我们如何进行给子组件进行传值呢?如果是电商网站系统的开发,还会涉及到购物车的选项,这时候就会涉及到非父子组件传值的情况。当然你也可以用Vuex状态管理工具来实现

qq_37164093的博客 1352

兄弟之间传参——$emit与$on共同使用

<!DOCTYPEhtml> <htmllang="en"> <head> <metacharset="UTF-8"> <metaname="viewport"content="width=device-width,initial-scale=1.0"> <metahttp-equiv...

qq_30541261的博客 456

Vue3从0到1开发组件前戏(中):$emit,$on,$off替代方案

本系列中会用到的第三方库 一、起因 上一篇文章中说过,在Vue的新版本,Vue3中删除了$on,$once,$off等方法,$emit仍然是现有 API 的一部分,因为它用于触发由父组件以声明方式附加的事件处理程序。 但是既然是组件开发,那么组件与组件之间的通信,组件与父级之间的通信肯定是少不了的,$emit方法虽然已经能满足半数以上的通信需求,但是剩下满足不了的部分,就是满足不了。所以就要用到市面上的第三方库来作为平替方案了。 Vue3迁移文档中提及:在 Vue 3 中,已经不可能使用这些 API 从组件

qq_35117063的博客 2644

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

一、每个 Vue 实例都实现了事件接口,即:    1、使用 $on(eventName) 监听事件    2、使用 $emit(eventName, optionalPayload) 触发事件二、注意事项 1、父组件可以在使用子组件的地方直接用 v-on 来监听子组件触发的事件 2、不能用 $on 监听子组件释放的事件,而必须在模板里直接用 v-on 绑定三、例子及说明1、父组件代码及说明&lt...

qq_34129336的博客 3万+

vue源码解析:vue事件方法之$on方法的实现原理

vue中事件方法一共就四个,挂载在vue实例上的$on用来监听自定义事件时,通常会用到,那么$on的内部实现原理是什么呢?下面我们来详细说下$on: vm.$on( event, callback ) 参数: {string | Array<string>} event(数组只在 2.2.0+ 中支持) {Function} callback 作用: 监听当前实例上的自定义事件。事件可以由vm.$emit触发。回调函数会接收所有传入事件触发函数的额外参数。 事例: vm.$o.

lee前端技术站 7129
上一篇: vue中 关于$emit的用法
下一篇: Android Studio目录结构及工程项目结构解析
.NET跨平台
博客等级 码龄15年 6066粉丝 738原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值