VUE子组件向父组件传值详解(含传多值及添加额外参数场景)


Posted in Javascript onSeptember 01, 2020

一、子组件向父组件传递一个值

子组件:

this.$emit('change', this.value);

父组件:

<!-- 在父组件中使用子组件 -->
<editable-cell :text="text" :inputType="inputType" @change="costPlannedAmountChange($event)" />
// 事件处理函数
async costPlannedAmountChange(value) {
	console.log(value)
}

在使用子组件时,绑定change函数的事件处理函数也可以写成如下格式:

<editable-cell :text="text" :inputType="inputType" @change="costPlannedAmountChange" />

绑定事件处理函数时,可以不带括号,形参则默认为事件对象,如果绑定时带上了括号,再想使用事件对象则需要传入$event作为实参。

二、子组件向父组件传递一个值,并携带额外参数

record为额外参数( 本文的额外参数都拿record做举例 )。

子组件:

this.$emit('change', this.value);

父组件:

<!-- 插槽 -->
<template slot="planned_amount" slot-scope="text, record">
 <!-- 在父组件中使用子组件 -->
 <editable-cell :text="text" :inputType="inputType" @change="costPlannedAmountChange(record,$event)" />
</template>
// 事件处理函数
async costPlannedAmountChange(record,value) {
 console.log(record,value)
},

绑定事件处理函数时,record和$event的顺序不做要求,但是按照vue事件绑定的习惯,$event通常放在实参列表末尾。

三、子组件向父组件传递多个值

子组件:

// 向父组件传递了两个值
this.$emit('change', this.value,this.text);

父组件:

<editable-cell :text="text" :inputType="inputType" @change="costPlannedAmountChange" />
// 事件处理函数
async costPlannedAmountChange(param1,param2) {
  console.log(param1,param2)
},

绑定事件处理函数时,不能携带括号!!!如果携带括号并且在括号内加了$event,只能拿到子组件传递过来的第一个参数。

四、子组件向父组件传递多个值,并携带额外参数

record为额外参数( 本文的额外参数都拿record做举例 )。

子组件:

// 向父组件传递了两个值
this.$emit('change', this.value,this.text);

父组件:

<template slot="planned_amount" slot-scope="text, record">
 <!-- 在父组件中使用子组件 -->
  <editable-cell :text="text" :inputType="inputType" @change="costPlannedAmountChange(record,arguments)" />
</template>
// 事件处理函数
async costPlannedAmountChange(record,args) {
  console.log(record,args)
},

arguments是方法绑定中的一个关键字,内部包括了所有方法触发时传递过来的实参。arguments和额外参数的位置谁先谁后不做要求,建议arguments放后面。

查看args的打印结果:

VUE子组件向父组件传值详解(含传多值及添加额外参数场景)

总结

到此这篇关于VUE子组件向父组件传值(含传多值及添加额外参数场景)的文章就介绍到这了,更多相关VUE子组件向父组件传值内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
IE与FireFox中的childNodes区别
Oct 20 Javascript
JS动态添加option和删除option(附实例代码)
Apr 01 Javascript
js鼠标及对象坐标控制属性详细解析
Dec 14 Javascript
jquery学习总结(超级详细)
Sep 04 Javascript
jQuery仿淘宝网产品品牌隐藏与显示效果
Sep 01 Javascript
jQuery实现form表单元素序列化为json对象的方法
Dec 09 Javascript
Angular的Bootstrap(引导)和Compiler(编译)机制
Jun 20 Javascript
js实现tab切换效果
Feb 16 Javascript
jQuery中的deferred使用方法
Mar 27 jQuery
Vue.js实现的表格增加删除demo示例
May 22 Javascript
手动下载Chrome并解决puppeteer无法使用问题
Nov 12 Javascript
JavaScript判断浏览器运行环境的详细方法
Jun 30 Javascript
vue离开当前页面触发的函数代码
Sep 01 #Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
Sep 01 #Javascript
Node.js web 应用如何封装到Docker容器中
Sep 01 #Javascript
Vue中关闭弹窗组件时销毁并隐藏操作
Sep 01 #Javascript
Vue 使用typescript如何优雅的调用swagger API
Sep 01 #Javascript
vue路由切换时取消之前的所有请求操作
Sep 01 #Javascript
jQuery实现动态加载瀑布流
Sep 01 #jQuery
You might like
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
Document对象内容集合(比较全)
2010/09/06 Javascript
克隆javascript对象的三个方法小结
2011/01/12 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
node中Express 动态设置端口的方法
2017/08/04 Javascript
详解Angular5路由传值方式及其相关问题
2018/04/28 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
layui实现三级导航菜单
2019/07/26 Javascript
详解Angular cli配置过程记录
2019/11/07 Javascript
js实现的订阅发布者模式简单示例
2020/03/14 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
使用基于Python的Tornado框架的HTTP客户端的教程
2015/04/24 Python
python中getaddrinfo()基本用法实例分析
2015/06/28 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
Python argparse模块使用方法解析
2020/02/20 Python
基于nexus3配置Python仓库过程详解
2020/06/15 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
python 字符串格式化的示例
2020/09/21 Python
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
DJI大疆无人机官方商城:全球领先的无人飞行器研发和生产商
2016/12/21 全球购物
德国狗狗用品在线商店:Schecker
2017/03/17 全球购物
Wojas罗马尼亚网站:波兰皮鞋品牌
2018/11/01 全球购物
大学生党员承诺书
2014/05/20 职场文书
关于奉献的演讲稿
2014/05/21 职场文书
学校四风对照检查材料
2014/08/28 职场文书
领导干部考核评语
2015/01/04 职场文书
情人节活动总结范文
2015/02/05 职场文书
2015年共青团工作总结
2015/05/15 职场文书
2015年中秋节主持词
2015/07/30 职场文书
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
2021/05/25 MySQL
nginx 配置缓存
2022/05/11 Servers
Java代码规范与质量检测插件SonarLint的使用
2022/08/05 Java/Android