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

Vue.js 表单

Vue.js 表单Vue 使用v-model指令在表单控件上实现双向数据绑定自动处理输入值与数据的同步。一、v-model 基本原理!-- v-model 是以下写法的语法糖 -- input v-modelmsg / !-- 等价于 -- input :valuemsg inputmsg $event.target.value /v-model会根据控件类型自动选择正确的属性和事件文本类valueinput复选框checkedchange单选框checkedchange选择框valuechange二、各表单控件用法1. 文本输入text / textareatemplate !-- 单行文本 -- input v-modelname placeholder请输入姓名 / p姓名: {{ name }}/p !-- 多行文本 -- textarea v-modeldesc placeholder请输入描述/textarea p描述: {{ desc }}/p /template script setup import { ref } from vue const name ref() const desc ref() /script注意textarea{{ text }}/textarea在 Vue 中不生效必须使用v-model。2. 复选框checkboxtemplate !-- 单个复选框 — 绑定布尔值 -- input typecheckbox v-modelagreed / label同意协议: {{ agreed }}/label !-- 多个复选框 — 绑定数组 -- input typecheckbox v-modelhobbies value阅读 / 阅读 input typecheckbox v-modelhobbies value运动 / 运动 input typecheckbox v-modelhobbies value音乐 / 音乐 p爱好: {{ hobbies }}/p /template script setup import { ref } from vue const agreed ref(false) const hobbies ref([]) // 选中值会自动 push/splice 到数组 /script3. 单选框radiotemplate input typeradio v-modelgender valuemale / 男 input typeradio v-modelgender valuefemale / 女 p性别: {{ gender }}/p /template script setup import { ref } from vue const gender ref() /script4. 选择框selecttemplate !-- 单选 -- select v-modelcity option disabled value请选择城市/option option valuebj北京/option option valuesh上海/option option valuegz广州/option /select p城市: {{ city }}/p !-- 多选 -- select v-modelcities multiple option valuebj北京/option option valuesh上海/option option valuegz广州/option /select p城市: {{ cities }}/p !-- 动态渲染选项 -- select v-modelselectedId option v-foritem in options :keyitem.id :valueitem.id {{ item.label }} /option /select /template script setup import { ref } from vue const city ref() const cities ref([]) const selectedId ref() const options ref([ { id: 1, label: 北京 }, { id: 2, label: 上海 }, { id: 3, label: 广州 } ]) /script三、修饰符1..lazy默认v-model在input事件时同步数据。.lazy改为在change事件失去焦点或按回车时同步!-- 输入过程中不更新失去焦点时才更新 -- input v-model.lazymsg /2..number自动将输入值转为数字类型input v-model.numberage typenumber / !-- age 为 Number 类型而非 String --如果值无法被parseFloat()解析则保留原始字符串。3..trim自动去除首尾空白字符input v-model.trimname /修饰符对比修饰符作用触发时机.lazy延迟同步change事件失焦/回车.number转为数字input事件.trim去首尾空格input事件四、组件上的 v-modelVue 3 默认约定!-- 父组件 -- CustomInput v-modelsearchText / !-- 等价于 -- CustomInput :modelValuesearchText update:modelValuesearchText $event /!-- CustomInput.vue -- script setup defineProps([modelValue]) const emit defineEmits([update:modelValue]) const onInput (e) { emit(update:modelValue, e.target.value) } /script template input :valuemodelValue inputonInput / /template具名 v-modelVue 3Vue 3 支持在一个组件上使用多个v-model!-- 父组件 -- UserForm v-model:nameuserName v-model:ageuserAge / !-- 等价于 -- UserForm :nameuserName update:nameuserName $event :ageuserAge update:ageuserAge $event /!-- UserForm.vue -- script setup defineProps([name, age]) const emit defineEmits([update:name, update:age]) /script template input :valuename inputemit(update:name, $event.target.value) / input :valueage inputemit(update:age, Number($event.target.value)) / /template五、完整表单实战template form submit.preventhandleSubmit !-- 姓名 -- div label姓名:/label input v-model.trimform.name placeholder请输入姓名 / /div !-- 年龄 -- div label年龄:/label input v-model.numberform.age typenumber / /div !-- 性别 -- div label性别:/label input typeradio v-modelform.gender valuemale / 男 input typeradio v-modelform.gender valuefemale / 女 /div !-- 爱好 -- div label爱好:/label input typecheckbox v-modelform.hobbies valuereading / 阅读 input typecheckbox v-modelform.hobbies valuesports / 运动 input typecheckbox v-modelform.hobbies valuemusic / 音乐 /div !-- 城市 -- div label城市:/label select v-modelform.city option disabled value请选择/option option v-forc in cityList :keyc :valuec{{ c }}/option /select /div !-- 备注 -- div label备注:/label textarea v-model.lazyform.remark placeholder失焦时同步/textarea /div !-- 同意协议 -- div input typecheckbox v-modelform.agreed / 同意协议 /div button typesubmit :disabled!form.agreed提交/button /form /template script setup import { ref, reactive } from vue const form reactive({ name: , age: null, gender: , hobbies: [], city: , remark: , agreed: false }) const cityList [北京, 上海, 广州, 深圳] const handleSubmit () { console.log(提交数据:, JSON.stringify(form, null, 2)) } /script六、注意事项要点说明v-model 与 value不要同时使用:value和v-model会冲突textarea必须用v-model插值{{ }}不生效select 默认项用option disabled value请选择/option提供默认提示checkbox 绑定数组多选时v-model绑定数组value指定选中时的值number 类型typenumber只控制键盘v-model.number才控制数据类型reactive vs ref表单推荐reactive属性访问更简洁form.name而非form.value.name初始值始终为v-model绑定提供初始值避免未定义行为

相关文章:

Vue.js 表单

Vue.js 表单 Vue 使用 v-model 指令在表单控件上实现双向数据绑定&#xff0c;自动处理输入值与数据的同步。一、v-model 基本原理 <!-- v-model 是以下写法的语法糖 --> <input v-model"msg" /><!-- 等价于 --> <input :value"msg" …...

动态显示扫盲:51单片机如何用1个I/O口驱动8位数码管?Proteus仿真揭秘

51单片机单I/O口驱动8位数码管的动态扫描技术解析 第一次看到朋友用51单片机仅用3个引脚就驱动了6位数码管时&#xff0c;我盯着电路板反复检查了三遍——这完全违背了我对数码管控制的基本认知。后来才明白&#xff0c;动态显示技术就像魔术师的障眼法&#xff0c;利用人眼的视…...

从面试失败到拿下Offer:我的C++客户端开发技能树复盘(QT、设计模式、动态库)

从面试失败到技术突围&#xff1a;C客户端开发者的核心能力重构 去年冬天&#xff0c;我经历了职业生涯中最密集的面试周期——两周内六家公司的技术拷问&#xff0c;最终只收获一个普通offer。最让我受挫的不是被拒绝&#xff0c;而是在泊松软件二面时&#xff0c;面对动态库加…...

Source Han Serif CN:专业级开源中文字体完全配置指南

Source Han Serif CN&#xff1a;专业级开源中文字体完全配置指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 在中文排版设计领域&#xff0c;寻找一款既专业又免费的开源字体解决…...

Spring Boot配置文件加载顺序全解析:从jar包到resources,你的配置到底被谁覆盖了?

Spring Boot配置加载深度解密&#xff1a;优先级陷阱与高效调试指南 当你在application-dev.yml中将端口改为9090&#xff0c;启动后却依然看到8080时&#xff0c;这种配置失效的困惑几乎每个Spring Boot开发者都遇到过。上周我们团队就因此浪费了三小时排查一个"简单&qu…...

别再乱用ifstream了!C++文件读取的5个常见坑点与正确姿势(含file.good/seekg/tellg/read详解)

别再乱用ifstream了&#xff01;C文件读取的5个常见坑点与正确姿势 在C开发中&#xff0c;文件操作看似简单却暗藏玄机。很多开发者在使用ifstream时&#xff0c;往往因为对底层机制理解不够深入&#xff0c;导致程序出现各种难以排查的问题。本文将深入剖析五个最常见的ifstr…...

3天投递100+岗位?Boss直聘批量投简历工具让你求职效率翻倍!

3天投递100岗位&#xff1f;Boss直聘批量投简历工具让你求职效率翻倍&#xff01; 【免费下载链接】boss_batch_push Boss直聘批量投简历&#xff0c;批量发送自定义招呼语 项目地址: https://gitcode.com/gh_mirrors/bo/boss_batch_push 在竞争激烈的求职市场中&#x…...

Keyviz终极指南:5分钟掌握开源键鼠可视化工具,大幅提升操作透明度

Keyviz终极指南&#xff1a;5分钟掌握开源键鼠可视化工具&#xff0c;大幅提升操作透明度 【免费下载链接】keyviz Keyviz is a free and open-source tool to visualize your keystrokes ⌨️ and &#x1f5b1;️ mouse actions in real-time. 项目地址: https://gitcode.c…...

告别卡顿!CocosCreator 3.4.0 资源预加载与进度条实战(附完整TypeScript代码)

CocosCreator 3.4.0 资源预加载与进度条实战指南 1. 为什么需要资源预加载&#xff1f; 在游戏开发中&#xff0c;资源加载是影响用户体验的关键因素之一。想象一下&#xff0c;玩家打开游戏时遇到长时间的白屏或卡顿&#xff0c;这种糟糕的第一印象很可能导致用户流失。CocosC…...

如何快速掌握华为光猫配置解密工具:新手必看的完整教程

如何快速掌握华为光猫配置解密工具&#xff1a;新手必看的完整教程 【免费下载链接】HuaWei-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/hu/HuaWei-Optical-Network-Terminal-Decoder 华为光猫配置解密工具是一款专为解密华为光猫配置…...

别再只会用默认窗了!CT医生手把手教你调出清晰图像的窗宽窗位实战技巧

别再只会用默认窗了&#xff01;CT医生手把手教你调出清晰图像的窗宽窗位实战技巧 在医学影像诊断中&#xff0c;CT图像的解读质量直接影响着诊断的准确性。很多初学者常常依赖设备的默认窗设置&#xff0c;却不知道这可能导致细微病灶的漏诊。记得我刚进入放射科时&#xff0c…...

Audiveris乐谱识别教程:5步将纸质乐谱转换为数字宝藏

Audiveris乐谱识别教程&#xff1a;5步将纸质乐谱转换为数字宝藏 【免费下载链接】audiveris Latest generation of Audiveris OMR engine 项目地址: https://gitcode.com/gh_mirrors/au/audiveris 还在为整理成堆的纸质乐谱而烦恼吗&#xff1f;想要快速将古典乐谱转化…...

VLA-4D模型:机器人时空一致性操作的技术突破

1. VLA-4D&#xff1a;机器人操作中的时空一致性突破在机器人操作领域&#xff0c;视觉-语言-动作&#xff08;VLA&#xff09;模型正逐渐成为实现通用机器人任务的重要技术路径。这类模型通过将视觉感知、语言理解和动作规划整合到一个统一的框架中&#xff0c;使机器人能够根…...

从一次真实的授权测试复盘:Fscan在内网横向移动中的实战技巧与参数调优

从一次真实的授权测试复盘&#xff1a;Fscan在内网横向移动中的实战技巧与参数调优 去年参与某金融企业的红队演练时&#xff0c;遇到一个典型的多层网络隔离环境。当我们通过钓鱼邮件拿下外围Web服务器后&#xff0c;发现内网存在大量ACL限制&#xff0c;传统扫描工具要么速度…...

通过Taotoken CLI工具一键完成开发环境的多工具统一配置

通过Taotoken CLI工具一键完成开发环境的多工具统一配置 1. Taotoken CLI工具概述 Taotoken CLI工具&#xff08;taotoken/taotoken&#xff09;是为开发者提供的命令行工具&#xff0c;旨在简化多工具统一接入Taotoken平台的过程。通过该工具&#xff0c;开发者可以快速配置…...

提取完整请求URL的方法

&#xff08;惯例看不懂&#xff0c;我怎么上学的时候没跟几个计算机佬打好关系呢&#xff09; 要从数据包中提取完整的请求URL&#xff0c;核心在于准确解析HTTP协议层&#xff0c;特别是请求行&#xff08;Request Line&#xff09;中的信息。完整的URL通常由协议、主机&…...

如何在VMware Workstation中启用Apple系统虚拟机支持

如何在VMware Workstation中启用Apple系统虚拟机支持 【免费下载链接】unlocker VMware Workstation macOS 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker 对于希望在Windows或Linux环境中运行macOS虚拟机的开发者和技术爱好者来说&#xff0c;VMware Work…...

Flutter业务逻辑解耦利器:AI辅助规则引擎flutter-ai-rules详解

1. 项目概述&#xff1a;当Flutter遇见AI规则引擎最近在做一个Flutter项目&#xff0c;涉及到一些复杂的业务逻辑判断&#xff0c;比如用户等级、积分兑换、活动资格审核这些。一开始&#xff0c;我们团队还是老路子&#xff0c;在Dart代码里写一堆if-else&#xff0c;结果没几…...

明日方舟MAA终极指南:如何一键完成全部日常任务

明日方舟MAA终极指南&#xff1a;如何一键完成全部日常任务 【免费下载链接】MaaAssistantArknights 《明日方舟》小助手&#xff0c;全日常一键长草&#xff01;| A one-click tool for the daily tasks of Arknights, supporting all clients. 项目地址: https://gitcode.c…...

别再被张量维度搞晕了!用几个真实PyTorch例子,彻底搞懂unsqueeze和squeeze

从图像处理到模型训练&#xff1a;PyTorch张量维度操作实战指南 如果你曾经在PyTorch中遇到过"RuntimeError: Expected 4-dimensional input for 4-dimensional weight..."这类错误&#xff0c;那么这篇文章就是为你准备的。张量维度操作是深度学习中最基础却又最容易…...

ZoteroDuplicatesMerger:5步解决文献管理中的重复条目智能合并难题

ZoteroDuplicatesMerger&#xff1a;5步解决文献管理中的重复条目智能合并难题 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger ZoteroDuplicat…...

RePKG:3步掌握Wallpaper Engine资源提取与TEX格式转换

RePKG&#xff1a;3步掌握Wallpaper Engine资源提取与TEX格式转换 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾面对Wallpaper Engine的PKG文件束手无策&#xff1f;是否…...

编译器工程师的噩梦与宝藏:深入VLIW架构下的指令调度与优化实战

编译器工程师的噩梦与宝藏&#xff1a;深入VLIW架构下的指令调度与优化实战 在计算机体系结构的演进历程中&#xff0c;VLIW&#xff08;超长指令字&#xff09;架构始终是一个充满矛盾的存在——它既能让硬件工程师如获至宝&#xff0c;又常令编译器开发者夜不能寐。这种将指令…...

别再只调参了!给YOLOv5s/n/l/m/x模型“换芯”:C3ECA等注意力模块的性能对比与选型指南

YOLOv5模型注意力模块实战指南&#xff1a;从C3ECA到C3CBAM的深度对比 在计算机视觉领域&#xff0c;YOLOv5系列模型因其出色的实时检测性能而广受欢迎。然而&#xff0c;许多开发者在使用过程中往往止步于简单的参数调整&#xff0c;忽视了模型架构优化的巨大潜力。本文将带您…...

事件驱动架构实战:基于paw-skill构建插件化自动化技能框架

1. 项目概述与核心价值最近在折腾一个很有意思的开源项目&#xff0c;叫hermesnest/paw-skill。乍一看这个名字&#xff0c;可能会有点摸不着头脑&#xff0c;hermes&#xff08;赫尔墨斯&#xff09;是希腊神话里的信使之神&#xff0c;nest是巢穴&#xff0c;paw是爪子&#…...

大气层整合包:Nintendo Switch终极自制系统完整指南

大气层整合包&#xff1a;Nintendo Switch终极自制系统完整指南 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 想要彻底释放你的Nintendo Switch游戏机全部潜力吗&#xff1f;大气层整合包…...

ComfyUI-Manager完全指南:AI工作流节点的终极管理方案

ComfyUI-Manager完全指南&#xff1a;AI工作流节点的终极管理方案 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various custo…...

三步搞定微信双设备登录:WeChatPad让你的手机和平板同时在线

三步搞定微信双设备登录&#xff1a;WeChatPad让你的手机和平板同时在线 【免费下载链接】WeChatPad 强制使用微信平板模式 项目地址: https://gitcode.com/gh_mirrors/we/WeChatPad 还在为微信只能在单一设备登录而烦恼吗&#xff1f;想象一下&#xff0c;你正在手机上…...

别再复制粘贴了!手把手教你为Vue+Element-UI后台定制一个带图片上传的富文本编辑器

深度定制VueElement-UI富文本编辑器&#xff1a;从图片上传到企业级整合实战 在后台管理系统开发中&#xff0c;富文本编辑器就像是一把瑞士军刀——它需要同时满足内容排版、多媒体插入和数据交互等多种需求。而当我们把Vue、Element-UI和quill-editor这三个技术栈组合在一起时…...

DoL-Lyra整合包:5分钟打造你的专属Degrees of Lewdity游戏体验 [特殊字符]

DoL-Lyra整合包&#xff1a;5分钟打造你的专属Degrees of Lewdity游戏体验 &#x1f3ae; 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 你是否曾经面对Degrees of Lewdity的众多Mod感到选择困难&a…...