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 ...
随机推荐
- FCC 中级算法题 数组扁平化
Steamroller 对嵌套的数组进行扁平化处理.你必须考虑到不同层级的嵌套. Array.isArray() 思路: (1)遍历arr,如果arr[i]是数组,就重新调用本函数继续循环,然后和新数 ...
- CF1408
CF1408 那个博客搭好遥遥无期. A: 直接做就行了,我没智力还写 \(dp\) . #include<bits/stdc++.h> using namespace std; #def ...
- 通过网页或者移动设备链接跳转qq(tim)添加好友(群)
首先需要去qq群官方,然后点记加群组件,然后选择群,复制对应的代码即可 登录到QQ群官网 点击加群组件 选择群,选择网页还是移动设备 复制代码 示例: <html> <head> ...
- LeetCode 94. 二叉树的中序遍历()
原题解 题目 约束 题解 方法一 class Solution { public: void inorder(TreeNode* root, vector<int>& res) { ...
- Tcp网络模型
要摸清网络,那么第一步肯定是要清楚网络协议的分层结构,用上帝视角来看网络. 对于同一台设备上的进程间通信,有很多种方式,比如有管道.消息队列.共享内存.信号等方式,而对于不同设备上的进程间通信,就需要 ...
- vs2010 Windows程序打包成安装包方法
1. 在vs2010 选择"新建项目"--"其他项目类型"--"Visual Studio Installerà"安装项目": ...
- Python实现方便的读入数字
众所周知,python只能读字符串,你如果要读整数只能读一个字符串,split成列表,再用int或者float转换. 比如这样 s=input().split() a,b=map(int,s) #或者 ...
- maven 多模块项目的测试覆盖率分析 - jacoco 聚合分析
前言 对于大多数 maven 多模块化工程,可以使用 Jacoco 这款工具,关于 Jacoco 这款工具,ChatGPT 对它的描述是这样的: JaCoCo(Java Code Coverage)是 ...
- IDEA中使用JDBC连接MySQL数据库报错:No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 的解决方法
在IDEA中使用JDBC连接MySQL,程序运行之后报错: 定位到第16行: 根据上面报错提示,在url参数字段最前面添加参数 useSSL=false : 再次运行程序,成功连接到数据库!
- lua的一些封装方法
获取点击屏幕坐标 1 function getTouchPosition() 2 local locationX, locationY 3 4 local listener = cc.EventLis ...