Vue 事件绑定与解绑
目录
事件绑定
基础知识
使用场景
注意事项
v-on 绑定事件
语法
实例
$ref绑定事件
语法
实例
事件解绑
语法
实例
事件绑定
基础知识
使用场景
子组件==>父组件传数据
在父组件中给子组件绑定自定义事件,事件的回调在父组件中。
注意事项
组件上,默认绑定的事件为自定义事件;绑定原生事件的时候需要添加 native修饰符。
绑定一个名为click的自定义事件:<Demo @click="test"/>绑定一个click原生事件:<Demo @click.native="test"/>
v-on 绑定事件
语法
绑定事件在父组件中进行:
方法一:@事件名称=“函数名称”<Demo @atguigu="test"/>方法二:v-on:事件名称=“函数名称”<Demo v-on:atguigu="test"/> 在methods中配置回调函数
子组件传递参数:
<button @click="触发事件函数">结构中定义触发事件</button>触发事件函数中使用 this.$emit("事件名称", 参数); 传递参数
实例
父组件:
<template><Student @demo="Demotest" />//这里demo为事件名称 Demotest为函数名称</template><script>
import Student from "./Student.vue";export default {name: "School",components: {Student,},methods: {Demotest(name) {console.log("我是父组件,我是用v-on绑定事件传递参数", name);},},
};
</script>
子组件:
<template><button @click="sendStudent">点我传递学生信息</button></template><script>export default {name: "Student",data() {return {name: "张三",age: 18,};},methods: {sendStudent() {this.$emit("demo", this.name);//demo为事件名称,对应父组件的@demo事件//传递this.named这个参数},},};
</script>
$ref绑定事件
语法
绑定事件在父组件中进行:
<School ref= "实例名称" ></School>this.$refs.实例名称.$on("触发事件名称", 回调函数)
子组件传递参数:
<button @click="触发事件函数">结构中定义触发事件</button>触发事件函数中使用 this.$emit("事件名称", 参数); 传递参数
实例
父组件:
<template><Student ref="student" />//student为实例名称并非函数名称</template><script>
import Student from "./Student.vue";
export default {name: "School",components: {Student,},methods: {getStusentName(name) {console.log("school收到了student的名字", name);},},mounted() {console.log(this.$refs.student.$on("aaa", this.getStusentName));//student是实例名称 aaa是事件名称//getStusentName 是回调函数 此处只能在methods配置回调函数或者使用箭头函数否则this指向会出问题},
};
</script>
子组件:
<template><button @click="sendStudentName">点我传递Studentname</button>//此处sendStudentName为触发事件的函数名称</template><script>export default {name: "Student",data() {return {name: "张三",age: 18,};},methods: {sendStudentName() {this.$emit("aaa", this.name);//aaa为事件名称 需要对应父组件的事件名称},};
</script>
事件解绑
语法
解绑一个自定义事件:this . $off('事件名称') //字符串形式解绑多个自定义事件:this .$off([ ' 事件1', '事件2']) //数组形式解绑所有自定义事件:this.$off() //无参组件实例对象销毁,此组件身上的自定义事件全部失效vm 实例对象销毁, vm的所有 组件实例对象 身上的自定义事件全部失效
实例
mounted() {console.log(this.$refs.student.$on("aaa", this.getStusentName));},beforeDestroy() {this.$off("aaa");}
总结
v-on比$ref更加简单,但是$ref更加更加灵活。不局限于函数中而是可以分布在各个位置。
Vue 事件绑定与解绑相关推荐
- jQuery事件绑定与解绑
一.jQuery事件 方法 描述 执行时机 click() 触发或将函数绑定到指定元素的click事件 单击鼠标时 dblclick() 触发或将函数绑定到指定元素的dblclick事件 双击鼠标时 ...
- 组件的自定义事件(绑定、解绑)
温馨提示:总结在最下方,如若不想看代码,请滚动至最下方查看相关知识点,谢谢! App.vue <template><div class="app">< ...
- js元素事件绑定与解绑兼容代码
一.元素事件的绑定方法兼容代码 为任意元素绑定任意事件的兼容代码 /*** 为任意元素绑定任意事件* @param {*} element 元素* @param {*} type 事件类型* @par ...
- JQuery_003_事件绑定与解绑
$(function () {//第一个按钮通过on的方式绑定点击事件$("#btn1").on("click",function () {alert(&quo ...
- js 事件(绑定、解绑、三个阶段、相关方法)
事件绑定与解绑: DOM0级事件(这类事件可以使用 return false来阻止事件往下执行,包含默认事件) 绑定: html内<input οnclick=''> js中el.οncl ...
- vue:组件自定义事件、绑定、解绑事件
vue:组件自定义事件.绑定.解绑事件 自定义组件绑定事件: 使用方法:在引入组件中的methods定义一个回调方法,在组件标签中使用如下两种方式自定义事件,去到引入的组件的中,使用 this.$em ...
- jQuery的绑定与解绑方法
jQuery的4种绑定方法 一.bind()与unbind() I.bind():绑定 1.定义 2.语法 3.参数 4.案例 (1)绑定单一事件 (2)绑定多个事件 II.unbind():解绑 1 ...
- Android 蓝牙开发(扫描设备、绑定、解绑)Kotlin版
Kotlin版 蓝牙开发 (扫描设备.绑定.解绑) 前言 运行效果图 正文 ① 配置项目 ② 布局和样式 ③ 编码 1. 通知栏样式修改 2. 蓝牙设备列表适配器编写 3. 权限请求 4. 初始化蓝牙 ...
- Android 蓝牙开发(扫描设备、绑定、解绑)
Android 蓝牙开发(扫描设备.绑定.解绑) 前言 效果图 一.配置项目 二.布局和样式 三.编码 四.源码 前言 公司最近给我丢了一个蓝牙开发的项目,不了解怎么办呢,那当然是从最基础的开始了,所 ...
最新文章
- 很好的Markdown开源库
- 如何实现分享链接到微信朋友圈时显示自定义LOGO以及名称介绍
- Sass在编译中文注释中报错
- 1.4 torch_向量/矩阵求偏导
- 最牛B 的 Linux Shell 命令(一)
- OC中文件读取类(NSFileHandle)介绍和常用使用方法
- python3中文教程_Python视频教程:Python3入门+进阶让你快速掌握Python3
- 专栏 | 是什么成就了中国最具创新力的公司,帮他们的超脑计划孵出阿尔法蛋?...
- 基于 lumen 的微服务架构实践
- spring5.3.x源码构建
- 计算机信息检索自考知识点,计算机信息检索02139自考资料.docx
- Linux/Unix桌面趣事:让桌面下雪
- **使用InkScape绘制简易字母LOGO的教程**
- Docker容器访问外部世界
- 用python处理mp4与gif格式互转,简单到爆!
- 计算机cpu属于什么症状,电脑CPU超频过度有什么表现
- SpringMVC 之Resolver视图解析器笔记(六)
- 火山快手伪原创视频热门
- spring加载不到.properties中属性问题(spring中类:PropertyPlaceholderConfigurer出现多次)
- espn配置路由_华为敏捷网络解决方案.ppt
热门文章
- IT视频课程集(包含各类Oracle、DB2、Linux、Mysql、Nosql、Hadoop、BI、云计算、编程开发、网络、大数据、虚拟化
- 在 Linux 中配置 tftpboot 服务器的 10 个步骤
- Mac电脑程序无响应怎么办?mac强制关闭软件的6种方法
- 苹果手机屏幕突然变暗_手机突然屏幕失灵
- Excel问题:excel表格的状态栏,不显示求和怎么办?
- 华为python673集_[译] 使用 Python 的 Pandas 和 Seaborn 框架从 Kaggle 数据集中提取信息...
- 计算机课word反思,教学反思Word文档
- 聊聊 iframe 的优缺点以及使用场景
- Kubernetes安装EFK日志收集
- vue移动端pdf在线预览,并实现手势缩放、移动