位置: IT常识 - 正文

vue中利用ref实现更灵活的子向父传值

编辑:rootadmin
vue中利用ref实现更灵活的子向父传值 目录前言一,基础代码二,层次递进的讲解用法2.1 给子组件设置ref2.2 自定义事件2.3 给子组件设置一个自定义事件三,灵活性四,注意后记前言

推荐整理分享vue中利用ref实现更灵活的子向父传值,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

目前我们熟知的子向父传值有两种方式: 一种是在父组件中定义函数,然后将函数利用props传给子组件,子组件调用时父组件可以收到子组件的参数;另一种利用自定义事件,给子组件在父组件中绑定一个自定义事件,子组件利用$emit方式触发该自定义事件时可以将数据传给父亲。

今天介绍的是通过ref的方法实现子组件传值给父组件。这种方式比前两种方式用起来更加灵活。

这里附上涉及到的知识点链接,如有需要可以复习: Vue组件之间的数据共享讲解 Vue中ref引用操作DOM元素 其中,第一篇文章中有涉及到子向父传值的传统方式。

一,基础代码

这里放上我的App(父组件)和Son(子组件)的代码,后续所有的改动在此基础之上: (APP)

<template> <div> <h2>子组件的msg:</h2> <Son></Son> </div></template><script>import Son from './Son.vue'export default { name: 'App', components: { Son }}</script><style></style>

(Son)

<template> <div> <h2>我是子组件</h2> </div></template><script>export default { name: 'Son', data() { return { msg: '巧克力小猫猿' } }}</script><style></style>二,层次递进的讲解用法2.1 给子组件设置ref

这里我们给子组件设置一个ref,并查看父组件中的this.$refs中有什么(在mounted钩子函数中打印): 打印出来的结果是: 可以看到,此时ref对象中已经有了Son,并且类型是vc(组件)。既然在ref对象中那我们可以通过ref去操作它。

2.2 自定义事件vue中利用ref实现更灵活的子向父传值

我们在学传统的子向父传值时,涉及到了自定义事件。本节的方法依旧余自定义事件有联系,所以在正式了解如何用ref实现子向父传值时我们先来复习下自定义事件。

自定义事件的定义:使用vm.$on这个api:

vm.$on('自定义事件名',自定义事件被触发后调用的回调函数)

如:

vm.$on( 'aa', function () { console.log( 'aa' ) })

自定义事件的触发:使用vm.$emit这个api:

vm.$emit('自定义事件名',自定义事件需要用到的参数1,参数2,参数n)

一个是定义,一个是触发。我在学习vue视频的时候看到很多人不理解用ref写的这种作法,本质上是对自定义事件的不了解。

2.3 给子组件设置一个自定义事件

在App中为子组件设置一个自定义事件:这里要说的是,==给谁绑定的自定义事件,就去找谁调用。==现在给子组件son绑定了一个自定义事件,那么就要在子组件中去调用它。并且如下图可知,给子组件设置的自定义事件名为qklxmy,一旦触发,则调用回调函数getmsg。 在子组件中触发自定义事件:并且把son中的msg传给了该自定义事件qklxmy。(传的msg用于执行自定义事件的回调函数) 上述过程,给子组件定义了自定义事件,又在子组件中调用。由于子组件中自定义事件的回调写在父组件中,所以父组件可以收到子组件的传值。

三,灵活性

在前面有说,这么写会更加灵活。之所以灵活,是因为我们可以在钩子函数中使用这种方式传值,如:

我们还可以写定时器来设置什么时候接到传值。

四,注意

通过此方式绑定自定义事件,回调要么配置在methos中,就是如上方法,要么就用箭头函数。 如果不用箭头函数,this的指向会出现问题。

后记

以上就是vue中用ref实现灵活的子向父传值的方式,希望能帮助读者朋友更好的理解组件之间的传值以及对ref的理解。欢迎关注。

本文链接地址:https://www.jiuchutong.com/zhishi/300388.html 转载请保留说明!

上一篇:chatGPT身份指令

下一篇:深度学习之快速实现数据集增强的方法

  • 消费税的计税价格是什么
  • 承兑汇票票号
  • 个体工商户的个税税率表
  • 企业所得税纳税人包括哪些类型
  • 存货跌价准备转销会影响当期损益吗
  • 公司股东可以自己买保险吗
  • 增值税应交税费科目
  • 其他应收款里面有增值税
  • 新成立公司注资流程
  • 所有者权益变动表
  • 发票已抵扣是什么意思
  • 电子发票怎么红冲步骤视频
  • 重新刻发票章需要什么资料
  • 员工疗养要扣公休假吗
  • 小规模纳税人开具增值税专用发票
  • 企业取得出售可供出售金融资产该如何写分录呢?
  • 存货盘亏损失
  • 先征后退房产税的会计处理?
  • 什么是票据权利?票据权利的内容有哪些
  • 备孕男的要吃叶酸吗? 已解决
  • 然后安装电脑系统
  • 进程间死锁
  • 资金拆借需防范哪些风险
  • PHP:stream_context_create()的用法_Stream函数
  • 溢价对外投资账务处理
  • 低值易耗品报废账务处理
  • zmweb.exe是什么进程
  • 亡灵节mid
  • 企业所得税具体纳税筹划案例
  • 房地产开发企业涉及哪些税
  • php和aspnet哪个好
  • 企业投资收益要交印花税吗
  • 建筑业红冲发票如何处理
  • siri怎么重置主人声音ios13
  • phpcms2008
  • 什么叫python的开发环境
  • 盈余公积转增资本所有者权益会变吗
  • 当月进项税大于销项税怎么办
  • 未入账分期金额要还吗
  • 本期盈余转入累计盈余
  • 广告费的税额计入哪里
  • 个人所得税计入应付职工薪酬吗
  • 利息收入红字如何入账
  • 企业送员工的礼品
  • 电费可以计入营业外收入吗
  • 双方投资合作项目合法吗
  • 预计负债是暂时性差异还是永久性差异
  • 固定资产增值税发票如何入账
  • 低值易耗品入账
  • 预付费用款项现金流量怎么算
  • 会计原始分录包括什么
  • 土地出让金抵减销项税计算
  • 预收款退还如何处理
  • 如何算增值税金额
  • 增加个税信息怎么增加
  • 生产经营所得成本费用怎么算
  • 小规模纳税人如何计算增值税
  • mysql replace正则表达式
  • centos6.10安装教程
  • sql kill进程
  • WIN7中的一个库最多可以包含多少个文件夹
  • win7怎么操作
  • win7玩游戏出现安全警报
  • win7电脑开机声音怎么改
  • mac安装软件提示无法检查更新
  • linux find命令查找文件 name
  • linux修改用户名
  • Win10 UWP红石版应用商店迎来更新:查找更新再换位置
  • 用android做一个简单的软件
  • linux文件压缩和备份实验
  • Node.js中的事件循环是什么
  • shell脚本详解
  • jquery自定义的方法有哪些
  • Android开发工具
  • js图片浏览器
  • android 属性动画改变view大小
  • unity游戏加密
  • Android使用领域(移动端,PC,服务端)
  • 安卓listview添加数据
  • 芜湖买房退契税在哪里退
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设