当前位置: 首页 > news >正文

关于vue3中如何实现多个v-model的自定义组件

实现自定义组件<User v-model="userInfo" v-model:gender="gender"></User>

User组件中更改数据可以同步更改父组件中的数据:

1 父组件:

<User v-model="userInfo" v-model:gender="gender"></User><p style="font-size: 10px;">{{userInfo.name}}  || {{userInfo.password}} </p>
<p style="font-size: 10px;">{{gender}}</p>const userInfo=ref({name:"第一",password:"pass"
})
const gender=ref("male")

2 子组件:

<template><div><p>用户名111: <input type="text" v-model="user.name"></p><p>密码222:<input type="text" v-model="user.password"></p><p>gender:<input type="text" v-model="genderVal"></p><p>Name: {{ user.name }}</p><p>Password: {{ user.password }}</p><p>gender: {{ genderVal }}</p></div>
</template><script setup lang='ts'>
import { ref, reactive, watch } from 'vue'const user=ref({name:"",password:""
})
const genderVal=ref("")const props=defineProps({modelValue:{ //v-model默认传给子组件的key是modelValue,//其他则在父组件需要通过v-model:gender="gender"分别对应type:Object,default:()=>{}},gender: { // 对应v-model:gender="gender"中冒号后面的keytype: String,default: "male",},})
const emits=defineEmits(['update:modelValue',"update:gender"])//每个v-model定义的值对应的事件分别对应update:modelValue',"update:gender"watch(user,(n,o)=>{console.log("user.value",user.value)emits("update:modelValue",user.value)
},{deep:true})watch(()=>genderVal.value,(n,o)=>{console.log("props.value--",n)emits("update:gender",n)
})</script>
<style lang='scss' scoped>
</style>

http://www.lryc.cn/news/465791.html

相关文章:

  • 【STM32项目_2_基于STM32的宠物喂食系统】
  • 商场楼宇室内导航系统
  • 2025全网最全计算机毕业设计选题推荐:计算机毕设选题指导及避坑指南√
  • Vision China 2024 | 移远通信以一体化的AI训练及部署能力,引领3C电子制造智能升级
  • 浏览器播放rtsp视频流解决方案
  • Ubuntu下查看指定文件大小
  • 【南开X上海交大】OPUS:效率显著提升的OCC网络
  • SqlUtils 使用
  • 平面声波——一维Helmhotz波动方程
  • 深度学习 简易环境安装(不含Anaconda)
  • Java缓存技术(java内置缓存,redis,Ehcache,Caffeine的基本使用方法及其介绍)
  • YoloV9改进策略:主干网络改进|DeBiFormer,可变形双级路由注意力|全网首发
  • 【力扣 | SQL题 | 每日3题】力扣2988,569,1132,1158
  • 移动网络知识
  • CentOS系统Nginx的安装部署
  • Leetcode 最长公共前缀
  • [C#][winform]基于yolov5的驾驶员抽烟打电话安全带检测系统C#源码+onnx模型+评估指标曲线+精美GUI界面
  • 【Flutter】基础入门:开发环境搭建
  • AI学习指南深度学习篇-对比学习(Contrastive Learning)简介
  • 【蓝队技能】【规则开发1】Suricata-C2Webshell隧道
  • 全面了解 NGINX 的负载均衡算法
  • Java-继承与多态-上篇
  • 通过比较list与vector在简单模拟实现时的不同进一步理解STL的底层
  • 软件I2C的代码
  • 登录时用户名密码加密传输(包含前后端代码)
  • ai聊天对话页面-uniapp
  • 虚拟滚动列表如何实现?
  • 07_Linux网络配置与管理:命令与工具指南
  • 首个统一生成和判别任务的条件生成模型框架BiGR:专注于增强生成和表示能力,可执行视觉生成、辨别、编辑等任务
  • 【Java知识】Java进阶-服务发现机制SPI