位置: IT常识 - 正文

vu3中的父子组件通讯(vue3父子组件通信)

编辑:rootadmin
一、传统的props 通过在父组件中给子组件传值,然后在子组件中通过props接受数据 1 //父组件 2 <ValidateInput 3 type="text" 4 v-model="emailVal" 5 :rules='emailRules' 6 placeholder='请输入邮箱地址' ...

推荐整理分享vu3中的父子组件通讯(vue3父子组件通信),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:父子组件v-model,vue父子组件v-model,父子组件v-model,vue父子组件是什么,vue父子组件是什么,vue父子组件mounted顺序原因,父子组件v-model,vue3父子组件,内容如对您有帮助,希望把文章链接给更多的朋友!

一、传统的props

通过在父组件中给子组件传值,然后在子组件中通过props接受数据

1 //父组件 2 <ValidateInput 3 type="text" 4 v-model="emailVal" 5 :rules='emailRules' 6 placeholder='请输入邮箱地址' 7 ref="inputRef" 8 > 9 </ValidateInput>10 11 //子组件12 export default defineComponent({13 name: 'ValidateInput',14 props: {15 rules: Array as PropType <RulesProp>,16 modelValue: String17 },18 }

二、通过modeValue绑定

//v-model简写<ValidateInput type="text" v-model="emailVal" placeholder='请输入邮箱地址' ref="inputRef" ></ValidateInput>//实际上是<ValidateInput type="text" :emailVal="emailVal" @update:modelValue="方法" placeholder='请输入邮箱地址' ref="inputRef" ></ValidateInput>//子组件<template> <div class="inputItem"> <input type="text" :value="inputRef.val" @input="updateValue" id="emial" > </div></template>export default defineComponent({ name: 'ValidateInput', props: { rules: Array as PropType <RulesProp>, modelValue: String }, setup (props, context) { const inputRef = reactive({ val: props.modelValue || '', isError: false, message: '' }) const updateValue = (e:KeyboardEvent) => { const targetValue = (e.target as HTMLInputElement).value inputRef.val = targetValue context.emit('update:modelValue', targetValue) } return { inputRef, updateValue } }vu3中的父子组件通讯(vue3父子组件通信)

三、事件广播(vue3中$on和$emit已废弃),使用新的插件mitt

Vue3.0版本中把on,off、onece等事件函数移除了,emit()用于父子组件之间的沟通。

为了能够使用事务总线,除了emit触发函数还得有on监听函数。官方推荐使用第三方库mitt

因此事务总线的使用应该为

首先安装第三方库mitt

npm install --save mitt

然后在程序中使用事件总线:

1 //父组件接受'form-item-created'频道 2 <script lang="ts"> 3 import { defineComponent, onUnmounted } from 'vue' 4 import mitt from 'mitt' 5 export const emitter = mitt() 6 export default defineComponent({ 7 name: 'ValidateForm', 8 setup () { 9 const callback = (test: string) => {10 console.log(test)11 }12 emitter.on('form-item-created', callback)13 onUnmounted(() => {14 emitter.off('form-item-created', callback)15 })16 return {}17 }18 })19 </script>20 21 //子组件发送信息22 onMounted(() => {23 console.log(inputRef.val)24 emitter.emit('form-item-created', inputRef.val)25 })
本文链接地址:https://www.jiuchutong.com/zhishi/310310.html 转载请保留说明!

上一篇:Java集合框架之List(java集合框架主要有)

下一篇:js如何自定义构造函数创建对象(js 自定义类型)

  • 买车交的保险
  • 租地建厂房房产税谁交
  • 发票行业税目怎么选择
  • 一般 小规模
  • 管理费用借贷方都有,如何结转
  • 企业所得税纳税调增调减怎么确定
  • 旅游开发公司有什么职位
  • 核定征收企业有利润如何注销税务登记
  • 处置车辆收入缴税规定
  • 单位车辆折旧完怎么处理
  • 调整上年度所得税计提分录
  • 付城镇土地使用税是多少
  • 公司给员工买房子
  • 以固定资产增资子公司 可以溢价么
  • 报废资产取得的增值税
  • 对供应商罚款通知单怎么写
  • 什么情况下只交城建税不交教育及地方税?
  • 对公账户提取备用金可以每天提现嘛
  • 政府回收土地要交土地增值税吗
  • 上年度的费用今年开票分录
  • 承兑汇票重复背书
  • 汽车装饰用品大全进货
  • 高温津贴的发放
  • 旅行社差额征税如何开票
  • 没有单据怎么核算成本?
  • 花卉租赁属于哪个税目
  • window1020h2更新问题
  • 临时设施是租入还是租入
  • 汇算清缴所得税补缴怎么处理
  • mac开机按command+r没反应
  • 数字权利服务如何打开
  • 高新技术企业所得税优惠政策最新2022
  • php nsq
  • window10进程
  • windows没有搜索
  • PHP:imagepsfreefont()的用法_GD库图像处理函数
  • 微信小程序webview支付
  • 增值税专用发票查询系统官方网站
  • php 性能优化
  • 怎么理解php语言
  • 关于 ChatGPT 必看的 10 篇论文
  • 微信小程序如何删除
  • less命令怎么用
  • 帝国cms仿站工具
  • 先款还是先票
  • 茶叶开一般发票(非增值税发票)是多少个点的?
  • 母公司资产包括子公司吗
  • sqlserver2008数据库可疑
  • 预提费用在资产负债表中如何列示
  • 分配人工费的会计分录
  • 员工罚款从工资中代扣
  • 过路费发票可以抵扣进项税吗
  • 附加税 减免
  • 企业代扣代缴哪些费用
  • 12月结账后要年度结转吗
  • 企业收到普通发票需要报税嘛
  • 开工程款发票有什么规定?
  • 法人网上变更流程
  • mysql从一个表导入记录到另一个表
  • Windows 10 与 MySQL 5.5 安装使用及免安装使用详细教程(图文)
  • win7系统权限设置
  • 如何抛弃七情六欲
  • ubuntu16.04创建用户
  • avcodec.dll是什么意思
  • centos uuid
  • ubuntu命令行添加用户
  • pmropn.exe
  • win7速度
  • 彻底理解样本方差为何除以n-1
  • ecmascript6入门
  • node.js jquery
  • perl-v
  • js用变量值做参数
  • css中文字垂直排列
  • node 操作mysql
  • python的设置
  • jQuery插件封装时如要实现链式编程,需要
  • 江西省医保卡缴费
  • 从香港回内地需要做核酸检测吗
  • 四川社保2020增资方案
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设