位置: IT常识 - 正文

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

发布时间:2024-01-26
一、传统的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 自定义类型)

  • 记账凭证核算形式需要设置的凭证有
  • 无票收入在增值税表中填哪
  • 非营利机构注册要求
  • 小规模免税的税额怎么处理
  • 物业公司财务制度及核算方法
  • 累计所得税前净现金流量计算公式为
  • 土地使用权入账价值包括哪些
  • 契税差别
  • 有限合伙企业jp
  • 税收用在哪些方面
  • 其他服务费包括哪些内容
  • 纳税人提供植物养护服务按照什么服务缴纳增值税
  • 转正工资差额什么意思
  • 结算银行贷款利息用什么凭证
  • 进项是普票销项是专票,怎么交税
  • 现金比率计算公式含义
  • 房地产企业使用什么准则
  • 王者荣耀中甄姬的cp是谁
  • 销项负数发票应该给谁
  • 购买土地前期测量费怎么入账
  • 无法连接到你的相机,请重启手机
  • 公司清算债权债务如何清理
  • 盘亏应交税费
  • 融资租入固定资产是什么意思
  • ssm框架集成
  • 职工伙食费会计科目
  • 解压.xz文件命令
  • 卫生医疗收费专业有哪些
  • 在建工程完工后转入哪里
  • 上期未申报怎么办
  • 织梦模板转讯睿模板
  • java的范式
  • phpcms验证码不显示
  • 地税代开的发票怎么计提税款?
  • 起重机属于固定资产中什么设备类型
  • 合伙开网吧需要什么手续
  • 母公司兼并子公司怎么办
  • 提前预支工资怎么打条子
  • 长期借款短期利息怎么算
  • 办公室购买电脑属于什么费用
  • 公司车辆做账交增值税吗
  • 公司与公司之间可以借款吗
  • 年度总预算一般在次年
  • mysql存储引擎面试题
  • mysql函数返回值类型
  • mysql登录失败处理
  • sqlserver存储过程在哪
  • 在mac外置硬盘上安装软件
  • u极速u盘装系统
  • windows7 记事本
  • win7任务栏快捷启动如何设置
  • mac系统不能升级怎么办
  • win7系统设备管理器没有端口
  • os x10.10.3beta5官网下载 yosemite10.10.3beta5下载地址
  • 如何在linux系统中创建空文件
  • windows万能wifi
  • windows视频截屏
  • cocos2d动画
  • Extjs EditorGridPanel中ComboBox列的显示问题
  • jquery表单验证代码
  • node操作mongodb数据库
  • 安卓手机屏幕不好使了怎么办
  • jQuery使用ajax方法解析返回的json数据功能示例
  • unity如何得到输入框的输入
  • jquery validate文档
  • python的遍历
  • jquery滚动到底部加载数据
  • python迭代算法举例
  • 张孝祥西江月
  • javascript常用的类型包括
  • js点击按钮实现登陆网页
  • jquery改变img的src
  • 东莞网上办税服务厅
  • 成都市老年公交卡年审地点
  • 土地增值税申报流程图
  • 学什么专业可以在税务局上班
  • 北京大兴开发区房价
  • 湖北省国家税务局历任局长
  • 昆明市地方税务局稽查局局长
  • 酒精税收分类编码查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号