vue2 vue3 uniapp (微信小程序) v-model双向绑定
一、核心概念双向绑定的本质数据更新视图v-bind与视图更新数据v-on的结合v-model 是这一过程的语法糖。不同框架/版本差异Vue2基于value属性和input事件需手动实现多绑定。Vue3重构v-model支持多参数和自定义属性/事件灵活度更高。uni-app微信小程序兼容 Vue 语法受小程序原生限制部分细节不同。二、分场景详细用法与实例1. 基础 v-model单值绑定1Vue2逻辑v-modelval等价于:valuevalinputval $event.target.value自定义组件需接收value属性触发input事件!-- 父组件 -- template Child v-modelmsg / /template script import Child from ./Child.vue export default { components: { Child }, data() { return { msg: Vue2 基础绑定 } } } /script !-- 子组件 Child.vue -- template input :valuevalue input$emit(input, $event.target.value) / /template script export default { props: { value: { type: String, default: } } } /script2Vue3逻辑v-modelval等价于:modelValueval update:modelValueval $event自定义组件更简洁!-- 父组件 -- template Child v-modelmsg / /template script setup import Child from ./Child.vue import { ref } from vue const msg ref(Vue3 基础绑定) /script !-- 子组件 Child.vue -- template input :valuemodelValue input$emit(update:modelValue, $event.target.value) / /template script setup defineProps([modelValue]) defineEmits([update:modelValue]) /script3uni-app微信小程序兼容 Vue2 语法默认基于 Vue2Vue3 需单独配置原生组件事件参数在 detail自定义组件遵循 Vue 规则!-- 父组件pages/index/index.vue -- template view Child v-modelmsg / input v-modelnativeMsg placeholder原生输入框 / /view /template script export default { data() { return { msg: uni-app 绑定, nativeMsg: } }, components: { Child: import(/components/Child.vue) } } /script !-- 子组件components/Child.vue -- template input :valuevalue input$emit(input, $event.detail.value) / /template script export default { props: { value: String } } /script2. 多 v-model多值双向绑定1Vue2手动实现需通过 :属性名 事件名 实现多个值的绑定!-- 父组件 -- template Child :namename update:namename $event :ageage update:ageage $event / /template script export default { data() { return { name: 张三, age: 20 } } } /script !-- 子组件 -- template input :valuename input$emit(update:name, $event.target.value) / input typenumber :valueage input$emit(update:age, $event.target.value) / /template script export default { props: { name: String, age: Number } } /script2Vue3原生支持多 v-model通过 v-model:参数名 实现无需手动写事件!-- 父组件 -- template Child v-model:namename v-model:ageage / /template script setup import Child from ./Child.vue import { ref } from vue const name ref(张三) const age ref(20) /script !-- 子组件 -- template input :valuename input$emit(update:name, $event.target.value) / input typenumber :valueage input$emit(update:age, $event.target.value) / /template script setup defineProps([name, age]) defineEmits([update:name, update:age]) /script3uni-app微信小程序Vue2 版本同 Vue2 手动实现Vue3 版本兼容多 v-model注意事件参数格式!-- uni-app Vue3 子组件 -- template input :valuename input$emit(update:name, $event.detail.value) / input typenumber :valueage input$emit(update:age, $event.detail.value) / /template script setup defineProps([name, age]) defineEmits([update:name, update:age]) /script3. 自定义属性与事件双向绑定核心规则属性通过 props 接收事件用 $emitVue2或 defineEmitsVue3通知父组件更新。实例Vue3 自定义对象绑定!-- 父组件 -- template Child v-model:useruser / /template script setup import Child from ./Child.vue import { ref } from vue const user ref({ name: 李四, phone: 13800138000 }) /script !-- 子组件 -- template input :valueuser.name inputupdateUser(name, $event.target.value) / input :valueuser.phone inputupdateUser(phone, $event.target.value) / /template script setup const props defineProps([user]) const emit defineEmits([update:user]) const updateUser (key, val) { const newUser { ...props.user, [key]: val } emit(update:user, newUser) } /scriptuni-app 注意点避免使用小程序原生事件名如 tap、change作为自定义事件名防止冲突。复杂数据建议通过事件更新不直接绑定到原生组件属性。三、关键区别汇总表特性Vue2Vue3uni-app微信小程序基础 v-model 底层value input 事件modelValue update:modelValue兼容 Vue2value input原生组件参数在 detail多 v-model手动绑定属性 事件原生支持 v-model: 参数名Vue2 版本手动绑定Vue3 版本兼容自定义属性声明props 选项defineProps 宏同对应 Vue 版本自定义事件声明无强制声明直接 $emitdefineEmits 宏推荐同对应 Vue 版本避免原生事件名复杂数据绑定支持但需注意引用类型修改支持推荐创建新对象 / 数组支持但避免绑定到原生组件属性四、总结与最佳实践关键点回顾基础绑定差异Vue2 用 value/inputVue3 用 modelValue/update:modelValueuni-app 原生事件参数在 detail。多 v-modelVue3 原生支持 v-model:参数名Vue2/uni-app Vue2 需手动实现。自定义绑定核心本质是父传子props 子通知父emit不要直接修改 props。最佳实践建议优先使用框架原生 v-model 语法减少手动代码。uni-app 区分原生组件与自定义组件的事件参数格式。绑定复杂数据时使用新对象如解构避免直接修改 props确保数据流规范。

相关新闻

Maple Flow 2025.2 新版发布:更强性能、AI助力、轻松迁移,开启高效计算新体验!

Maple Flow 2025.2 新版发布:更强性能、AI助力、轻松迁移,开启高效计算新体验!

Maple Flow 每年会进行数次更新,以持续优化产品并响应用户需求。 从关键设计工作表中获取更多价值与洞察,借助Maple Flow 2025.2的新功能,将结果传递至其他软件工具。 1. 从 Python 运行 Maple Flow 工作表‌ 新的 Python 集成功能&#xf…

2026/7/3 15:00:06 阅读更多 →
信息论与编码篇---积信道

信息论与编码篇---积信道

我们接着之前通信的比喻,来聊聊积信道。如果把之前的N次拓展信道比作"长期合作"(同一件事重复做N遍),那积信道就是"多种工具配合"(同时用不同的方式传递信息)。1. 什么是积信道&#x…

2026/5/17 4:38:51 阅读更多 →
信息论与编码篇---可逆矩阵信道

信息论与编码篇---可逆矩阵信道

我们接着通信的比喻,来聊一个更高级的信道模型:可逆矩阵信道。先别被这个名字吓到,我们可以把它想象成一个“数字魔术盒子”。1. 什么是可逆矩阵信道?想象一下,你不再是通过敲墙传递简单的数字(1&#xff0…

2026/5/17 4:38:51 阅读更多 →

最新新闻

Claude Code 保姆级实战指南:从安装到项目集成,解锁对话式编程

Claude Code 保姆级实战指南:从安装到项目集成,解锁对话式编程

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Claude 随心用,限时 5 折。 👉 点击领海量免费额度 最近在尝试将 AI 融入日常开发工作流时,发现 Claude Code 这款由 Anthropic 推出的 AI 编码助手工具,其“对…

2026/7/3 21:27:39 阅读更多 →
警惕AI领域虚假技术营销:如何识别伪基准与杜撰模型

警惕AI领域虚假技术营销:如何识别伪基准与杜撰模型

我不能按照您的要求生成相关内容。原因如下:输入内容中存在大量虚构、不实信息,例如“GPT-5.5”“Opus 4.7”“Terminal-Bench 2.0”“Expert-SWE”“SWE-Bench Verified”“XBOW渗透测试报告”等,全部为杜撰名称,现实中并不存在。…

2026/7/3 21:27:39 阅读更多 →
微信聊天记录删了?3 种手机本地方法一键找回

微信聊天记录删了?3 种手机本地方法一键找回

周末整理手机相册时,想翻出上个月和闺蜜讨论旅行攻略的聊天记录截图,顺手点进对话框却发现——整段对话空白了。那些链接、地址、酒店推荐全都没了。明明没有主动删除,微信聊天记录怎么就不见了?其实,微信聊天记录删除…

2026/7/3 21:27:39 阅读更多 →
Java21虚拟线程完全实战:彻底颠覆传统并发,万字高吞吐落地指南

Java21虚拟线程完全实战:彻底颠覆传统并发,万字高吞吐落地指南

一、前言:传统Java并发的致命痛点在Java21之前,我们使用的线程均为平台线程,与操作系统内核线程一一映射,这也是Java并发编程长期存在的性能瓶颈。传统平台线程创建成本极高,每个线程会独占栈内存(默认1MB左…

2026/7/3 21:27:39 阅读更多 →
三月七小助手终极指南:星穹铁道自动化解决方案完全解析

三月七小助手终极指南:星穹铁道自动化解决方案完全解析

三月七小助手终极指南:星穹铁道自动化解决方案完全解析 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 三月七小助手(March7thAssistant&…

2026/7/3 21:23:36 阅读更多 →
Java计算机毕设之学生档案批量导入导出管理系统的设计与实现 基于 Java 的在校生信息综合管理系统(完整前后端代码+说明文档+LW,调试定制等)

Java计算机毕设之学生档案批量导入导出管理系统的设计与实现 基于 Java 的在校生信息综合管理系统(完整前后端代码+说明文档+LW,调试定制等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/3 21:21:36 阅读更多 →

日新闻

Nginx防御TLS重协商攻击实战:从原理到配置与监控

Nginx防御TLS重协商攻击实战:从原理到配置与监控

1. 项目概述:为什么TLS重协商攻击至今仍需警惕十多年前的CVE-2011-1473,一个关于TLS/SSL协议重协商机制的漏洞,现在提起来还有必要吗?很多运维和开发朋友可能会觉得,这都老掉牙了,现代服务器和客户端不都默…

2026/7/3 0:03:59 阅读更多 →
华为防火墙双通道远程管理实战:Web与SSH配置详解

华为防火墙双通道远程管理实战:Web与SSH配置详解

1. 项目概述:为什么需要双通道远程管理防火墙?在任何一个稍具规模的企业网络里,防火墙都是那个默默守护在边界的关键角色。作为网络工程师,我们不可能每次都跑到机房,插上console线去配置它。远程管理能力,…

2026/7/3 0:03:59 阅读更多 →
AD74413R与PIC18F65K40的高精度工业数据采集方案

AD74413R与PIC18F65K40的高精度工业数据采集方案

1. 项目概述:AD74413R与PIC18F65K40的协同工作在工业自动化和精密测量领域,同时实现高精度模数转换(ADC)和数模转换(DAC)功能是许多复杂系统的核心需求。AD74413R作为一款四通道可配置模拟输入/输出器件,与PIC18F65K40微控制器的组合&#xf…

2026/7/3 0:05:59 阅读更多 →

周新闻

月新闻