Vue 事件的$event参数=事件的值案例
template
<el-table :data="dataList"> <el-table-column label="id" prop="id"></el-table-column> <el-table-column label="name" prop="name"> <template v-slot="props"> <el-input-number :min="0" v-model="props.row.count" @change="updateProduct($event)" size="mini" ></el-input-number> </template> </el-table-column> </el-table>
Script 部分
export default { data() { return { dataList: [ { id: 1, name: '001', count: 1 }, { id: 2, name: '002', count: 2 }, { id: 3, name: '003', count: 3 }, ] } }, methods: { updateProduct(value) { console.info(value) } } }
补充:vue学习笔记:事件中的$event对象作用
vue中点击事件或者是其他的事件可以通过在事件中添加$event进行对标签元素的dom获取或者修改标签指的属性等等。具体用法如下:
1、可以通过$event进行对dom元素的获取
html:
<button data-get="数据按钮" @click="getRvent($event)">获取事件对象</button>
首先我们先打印一下$event对象看一下,对象中有哪些属性,如下图
其中srcElement就是当前这个标签元素,可以根据此属性来获取当前点击事件的标签元素。
比如我们可以对获取的元素进行操作,就像原生js那样,如下:
// 获取事件对象e getRvent(e){ console.log(e); e.srcElement.style.background="red"; }
点击前:
点击后:
2、除此之外我们还可以对标签自身的属性进行修改,比如说改变button按钮的文字值,这个时候是使用的$event下面的textContent进行修改。
点击按钮之前:
点击按钮之后:
3、我们也可以通过$event获取标签自定义的属性值,如下:
html代码:
<button data-get="数据按钮" @click="getRvent($event)">获取事件对象</button>
这个button按钮标签有一个自定义的属性data-get,这时候我们可以根据$event的属性target.dataset.get属性进行获取
可以在控制台打印一下,如下:
其实有时候我们可以用元素本身自带的属性进行操作,摒弃添加class等操作,减少代码的冗余性,细化代码。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
在Uni中使用Vue的EventBus总线机制操作
首先我们要使用的EventBus事件总线,能够做到兄弟组件,或者不是父子关系的页面达到数据相互传递的效果 一种做法是在main.js中创建事件总线 创建完$EventBus后,就可以直接在页面中使用事件总线的方法来发送和接收事件了 第二种做法:封装事件总线 使用的时候直接引入就可以了 补充知识:vue里使用EventBus解决兄弟组件间的传递信息 ①初始化 import Vue from 'vue' export const EventBus = new Vue(); ②在需要的调用其他组件的页
-
vue 组件之间事件触发($emit)与event Bus($on)的用法说明
组件之间事件触发 之前使用组件,并不是很频繁,是水平的问题,目前工作中,公司大佬带着我手写过一个组件,再此很感谢他的指导.目前简单的组件已经有了自己的逻辑思维,正在从低级码农向中级码农蜕变.废话不多说.上图看看组件情况. 新增按钮组件: 操作按钮组合组件: 此时有个需求就是,无论是哪个按钮,如果改变了列表中的数据,列表需要实时更新数据. 此时就需要用到组件间的事件触发. 父子组件之间事件触发可以使用$emit $emit的使用方法如下: 在子组件中,写一个click点击事件.比如: cancel
-
vue组件中传值EventBus的使用及注意事项说明
主要想说下非父子组件之间的通信. 项目场景: 在app.vue里写了一个公共的顶部导航navbar,然后右侧有个分享按钮,而这个分享按钮只有在特定的页面才展示,项目里是在lottery.vue页面,然后想实现app.vue里点击分享按钮,触发lottery.vue里的分享方法. 解决:使用eventBus 1.创建一个event-bus.js import Vue from 'vue' export const EventBus = new Vue() 2.在app.vue引入eventbus,
-
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
前言 在 v-for 循环语句上,定义一个点击事件 传入两个参数(当行数据.当前事件对象),如下代码片段,当前事件对象必须加上 '$' 符号 <template> <div> <ul> <li v-for="(item, index) in arrData" :key="index" @click="operate(item, $event)" > {{ item.title }} </li&
-
详解利用eventemitter2实现Vue组件通信
概述 当两个组件之间没有任何父子关系时,利用Vue标准的props传值和emit触发事件无法解决他们之间通信的问题.最近做的项目使用的是eventemitter2,来实现不相关组件之间的通信.这篇文章分享的是我对eventemitter2使用的总结和体会. eventemitter2的npm文档大家可以看eventemitter2介绍.它是node.js提供的事件接口.安装如下 npm install --save eventemitter2 模块的EventEmitter2属性是一个构造函数,
-
浅谈vue中$event理解和框架中在包含默认值外传参
在vue中普通方法中默认带有event DOM事件如greet方法,如果是内联函数的话如warn方法,只需要在定义方法的地方同时传入$event即可,这里需要强调的是在iview中,这里用的是select组件,在其on-change事件中如果想要传入自定义的参数,使用直接传参的方式,获取的是传入的参数,那么如何获取到该方法默认的返回值(即不传参数时返回的默认选中值),这里使用 $event传入代表选中的值,如test方法,这里似乎也只要$event可以传入代表选中的值,其他的可能就是普通的参数,
-
vue通信方式EventBus的实现代码详解
vue通信方式有很多,项目中用的比较多的的有 pros.vuex.$emit/$on 这3种,还有 provide/inject (适合高阶组件). $attrs和$listeners (适合高阶组件)以及 $parent/$child/ref.eventBus 等这3种方式.很多时候我们都是只会使用api,而懂得原理以及实现,但我就觉得懂得原理以及实现跟一个只会调用api的开发人员时不在同一层次的.所以这里就像把跨组件通信的 eventBus 通信的原理给大家展示一下.这也是自己学到大佬的的东
-
Vue 事件的$event参数=事件的值案例
template <el-table :data="dataList"> <el-table-column label="id" prop="id"></el-table-column> <el-table-column label="name" prop="name"> <template v-slot="props"> &l
-
JavaScript事件对象event用法分析
本文实例讲述了JavaScript事件对象event用法.分享给大家供大家参考,具体如下: 前面的文章已经介绍了JavaScript为事件指定处理程序的五种方式. 下面继续介绍JavaScript的事件对象event. 事件对象event包含导致事件的元素.事件的类型以及其他与特定事件相关的信息. 1.DOM中的事件对象 属性/方法 类型 说明 bubbles Boolean 表明事件是否冒泡 cancelabel Boolean 表明是否可以取消事件的默认行为 currentTarget El
-
vue 实现click同时传入事件对象和自定义参数
仅仅传入自定义参数 HTML <div id="app"> <button @click="tm(123)">ddddd</button> </div> JS代码 new Vue({ el:'#app', methods:{ tm:function(e){ console.log(e); } } }) 仅仅传入事件对象 HTML <div id="app"> <button @cl
-
vue @tap事件之$event用法介绍
目录 vue $event用法 vue奇怪的event对象 event 对象 乌龙 vue $event用法 html <span class="cha mui-badge mui-badge-success fr font14" @tap="Isinspect('普通参数',$event)">查岗</span> js端: function Isinspect(a,event) { console.log(JSON.stringi
-
JavaScript事件处理器中的event参数使用介绍
在大部分浏览器中,当一个事件处理器被触发时,名为Event的类实例会作为第一个参数传入处理器中.而一直占据主流地位的ie却以自己专的方式行事,将Event实例保存到一个名为event的全局属性中. 复制代码 代码如下: if (!event) event=window.event; 上面的语句用来检测event参数是否为undefined或者null,如果是的话把window的event属性赋值给它,从而消除了浏览器差异. 为了获取目标元素的引用,在标准兼容的浏览器中使用target属性,在ie
-
Vue.JS入门教程之事件监听
你可以使用 v-on 指令来绑定并监听 DOM 事件.绑定的内容可以是一个当前实例上的方法 (后面无需跟括号) 或一个内联表达式.如果提供的是一个方法,则原生的 DOM event 会被作为第一个参数传入,同时这个 event 会带有 targetVM 属性,指向触发该事件的相应的 ViewModel: <div id="demo"> <a v-on="click: onClick">触发一个方法函数</a> <a v-on
-
深入理解Vue.js源码之事件机制
写在前面 因为对Vue.js很感兴趣,而且平时工作的技术栈也是Vue.js,这几个月花了些时间研究学习了一下Vue.js源码,并做了总结与输出. 文章的原地址:https://github.com/answershuto/learnVue. 在学习过程中,为Vue加上了中文的注释https://github.com/answershuto/learnVue/tree/master/vue-src,希望可以对其他想学习Vue源码的小伙伴有所帮助. 可能会有理解存在偏差的地方,欢迎提issue指出
-
浅谈Vue.js 中的 v-on 事件指令的使用
v-on 事件指令用于绑定事件. 1 基础用法 v-on 指令绑定事件后,就会监听相应的事件. html: <div id="app"> <h3>已点击 {{count}} 次</h3> <button @click="count++">点我</button> </div> 注意: @click 是 v-on:click 的简写形式, @ 即表示 v-on: . js: <script&g
-
JavaScript实现事件总线(Event Bus)的方法详解
目录 介绍 原理 分析 进阶 1. 如何在发送消息时传递参数 2. 订阅后如何取消订阅 3. 如何只订阅一次 4. 如何清除某个事件或者所有事件 5. TypeScript 版本 6. 单例模式 总结 介绍 Event Bus 事件总线,通常作为多个模块间的通信机制,相当于一个事件管理中心,一个模块发送消息,其它模块接受消息,就达到了通信的作用. 比如,Vue 组件间的数据传递可以使用一个 Event Bus 来通信,也可以用作微内核插件系统中的插件和核心通信. 原理 Event Bus 本质上
随机推荐
- Python 专题一 函数的基础知识
- jquery中的事件处理详细介绍
- 浅谈c语言中一种典型的排列组合算法
- python Django批量导入不重复数据
- 类似php的js数组的in_array函数自定义方法
- window调用api列出当前所有进程示例
- 模拟Spring的简单实现
- XML入门精解之结构与语法
- 使用JScript遍历Request表单参数集合
- JSP监听器用法分析
- 链接图片无缝(无间断)向左平滑滚动Js版代码
- PHP扩展开发教程(总结)
- Linux管理员手册(4)--内存管理
- mysql 复制记录实现代码
- javascript中全局对象的isNaN()方法使用介绍
- Js中parentNode,parentElement,childNodes,children之间的区别
- C++中的操作符重载详细解析
- 如何快速创建Android模拟器
- 详解Python中的Numpy、SciPy、MatPlotLib安装与配置
- 浅谈java获取UUID与UUID的校验