vue中通过$emit实现子向父通信
本篇讨论vue中使用$emit实现子向父通信,
第一步:我们在父组件中注册子组件,然后再给子组件标签添加一个自定义事件监听,这样在子组件实例上就绑定了一个自定义的事件add。
后面如果触发add事件,那么就会执行addBtnClick函数。
1 <template>
2 <div>
3 <h1>当前数为:{{ counter }}</h1>
4 <!-- 自定义add -->
5 <Add @add="addBtnClick"></Add>
7 </div>
8 </template>
9
10 <script>
11 import Add from './components/Add.vue';13 export default {
14 name:'App',
15 components: {
16 Add,18 },
19 data () {
20 return {
21 counter:0
22 }
23 },
24 methods: {
25 addBtnClick(count){
26 this.counter += count;
27 },31
32 }
33 }
34 </script>
35
36 <style scoped>
37
38 </style>
第二步:怎么去触发add事件呢,点击事件鼠标点击触发,键盘事件,按键盘触发,而自定义事件这里就用到了Vue提供的$emit去触发。
这里给谁绑定的事件就找谁触发,我们是给Add组件绑定的事件,那么就应该让Add组件去触发自定义事件add,
那怎么去执行$emit呢,这时我们就可以在Add组件中写一个按钮,然后添加点击事件,然后点击事件触发回调函数btnClick然后执行回调函数的代码。
当然我们也可以用watch监听器,去监听某一个数据,当数据发生改变时,触发自定义事件add也是可以的。
这里我就用点击事件简单点,点击按钮触发回调函数。然后再用$emit去触发自定义事件,这里$emit是可以传入多个参数的
1 <template>
2 <div>
3 <button @click="btnClick(1)">+1</button>
4 </div>
5 </template>
6
7 <script>
8 export default {
9 name: 'Add',
10 methods: {
11 btnClick(i){
12 // 触发自定义事件
13 this.$emit('add',i);//第一个参数是自定义事件的名称,第二个是传递出去的参数
14 }
15 }
16 }
17 </script>
18
19 <style scoped></style>
第三步:当add自定事件被触发,那么addBtnClick回调函数就会被执行,当执行函数时子组件通过$emit传递过来的,参数就可以被addBtnClick接收到

以上仅供参考学习,如果错误,请大佬指出,万分感谢。一起学习一起进步。
vue中通过$emit实现子向父通信的更多相关文章
- Vue中利用$emit实现子组件向父组件通信
Vue中利用$emit实现子组件向父组件通信 父组件 <template> <div> <p>我是父组件</p> <child :isShow=& ...
- VUE中 $on, $emit, v-on三者关系
VUE中 $on, $emit, v-on三者关系 每个vue实例都实现了事件借口 使用$on(eventName)监听事件 使用$emit(eventName)触发事件 若把vue看成家庭(相当于一 ...
- 关于CSS中的定位使用子绝父相(子类绝对位置和父类相对位置)
关于CSS中的定位使用子绝父相(子类绝对位置和父类相对位置) 欢迎转发,但是请填写原博客地址https://www.cnblogs.com/JNovice/p/9536910.html 前言:最近在 ...
- Vue ---- 组价 组件化 子传父 父传子
目录 补充js的for循环: 组件 1.组件的分类: 2.组件的特点 3.创建局部组件 4.全局组件 二.组件化 一.组件传参父传子 二.组件传参:子传父 补充js的for循环: // for in遍 ...
- vue的逆向传值(子传父)
逆向传值:子组件传值给父组件叫做逆向传值 (是不v欸允许的,必须经过事件触发才能传值) 逆向传值步骤: 1.要传值必须先抛出,在接收 语法: this.$emit("event" ...
- vue中 关于$emit的用法
1.父组件可以使用 props 把数据传给子组件.2.子组件可以使用 $emit 触发父组件的自定义事件. vm.$emit( event, arg ) //触发当前实例上的事件 vm.$on( ev ...
- Vue中的$emit组件事件运用
话不多说上代码 vue>src>App.vue <template> <div id="app"> <!-- header --> ...
- 总结vue中父向子,子向父以及兄弟之间通信的几种方式
子向父方式1:通过props,如例子中子组件test1.vue向父组件App.vue传值 App.vue代码 <template> <div id="app"&g ...
- vue中父组件如何监听子组件值的变化
vue中我们会遇到很多父子组件通信的需求, 下面简单列一下,父子组件通信的几种情况 1:父组件向子组件传值:使用prop向子组件传值: 2:子组件实时监听父组件传来的值的变化:使用watch去监听父组 ...
- vue.js 创建组件 子父通信 父子通信 非父子通信
1.创建组件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
随机推荐
- 互联网架构 之备份服务器 rsync
备份服务器(Rsync) 1.介绍备份的场景 1.什么情况下需要备份 一般数据比较重要的情况下,数据如果丢失很容易找不回来了的,建议备份. 2.什么是备份 将原有的数据复制一份或几份存起来,以备不时之 ...
- springMVC的定时器
大家好,本人从事软件行业已有8年,大部分时间从事软件开发编写工作.好了废话少说了哈哈哈,直接干货. 在Java开发过程中有很多业务需求里面需要我们实时处理一些动态的业务比如库存的数据动态更新,实时数据 ...
- 使用scrollIntoView 使某元素滚动到指定位置
var el = document.getElementById('A'); el.scrollIntoView('true'); 知识: element.scrollIntoView(); // 使 ...
- 二、pycharm的安装
1.python安装教程在上一篇已描述,详情查看: 2.安装pycharm 首先从网站下载pycharm:链接为:http://www.jetbrains.com/pycharm/download/# ...
- python之pyqt5-第一个pyqt5程序-图像压缩工具(2.0版本)-小记
(如想转载,请联系博主或贴上本博地址) 此篇为上一篇pyqt5图像压缩小工具改良版.因为比较简单,下面直接贴上代码. 效果图: # -*- coding: utf-8 -*- # Form imple ...
- 关于JDBC的学习
一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...
- win 11 VMware workstations b不可恢复的错误(vcpu-2)
首先检查一下电脑有没有开启CPU虚拟化,我的已经开启了,按照百度的方法去控制面板卸载程序里面,找到VMware 右击更改 弹出的安装程序点修复,,结果修复出错了,显示写入文件D:\vm\glib-2. ...
- OO多项式求导作业总结
一.程序分析 1.1第一次作业 第一次作业是简单的多项式求导,甚至没有括号嵌套.但是,就是这个在如今看来如此简单的作业,由于俺寒假过于起飞,pre没做,正则表达式也不会(属实拉跨),一度想用c语言字符 ...
- IOS开发基础之核心动画 基础动画、关键帧、组动画案例
// // ViewController.m // 30-核心动画 // // #import "ViewController.h" @interface ViewControll ...
- adb 全局
win10: 我的电脑-右键属性--系统保护--高级--环境变量--选择path--编辑--点击新建 在新建条目下输入 C:\Users\GL\platform-tool--重新打开cmd 测试adb ...