首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【Vue.js基础教程】 第9章:v-model 表单输入绑定详解:从文本框到自定义组件

【Vue.js基础教程】 第9章:v-model 表单输入绑定详解:从文本框到自定义组件

作者头像
代码简单说
发布2026-06-16 14:14:29
发布2026-06-16 14:14:29
710
举报
文章被收录于专栏:代码简单说代码简单说
v-model 表单输入绑定详解:从文本框到自定义组件

你有没有碰到过这样的场景:用户在页面上填写表单,结果你要写一大堆代码来同步这些输入值?别急,Vue 的 v-model 可以帮你解决这个问题!

在这里插入图片描述
在这里插入图片描述

什么是 v-model?

v-model 是 Vue 提供的一个指令,用来实现双向绑定数据和表单输入的简单语法糖。无论是文本框、复选框,还是选择框,v-model 都能轻松搞定!

本质是什么? v-model 的本质是:监听用户输入事件并动态更新数据。同时,它也能处理一些极端场景,比如中文输入法的组合文字。


常见表单场景:代码就是答案
1. 文本框
代码语言:javascript
复制
<input v-model="message" placeholder="请输入内容">
<p>你输入的是:{{ message }}</p>
2. 多行文本
代码语言:javascript
复制
<textarea v-model="multilineText" placeholder="写点什么吧"></textarea>
<p style="white-space: pre-line;">你写了:{{ multilineText }}</p>
3. 单选按钮
代码语言:javascript
复制
<input type="radio" id="male" value="男" v-model="gender">
<label for="male">男</label>

<input type="radio" id="female" value="女" v-model="gender">
<label for="female">女</label>

<p>你的性别是:{{ gender }}</p>
4. 复选框

单选

代码语言:javascript
复制
<input type="checkbox" v-model="isAgree">
<p>同意协议:{{ isAgree ? '是' : '否' }}</p>

多选

代码语言:javascript
复制
<input type="checkbox" value="Vue" v-model="selectedFrameworks"> Vue
<input type="checkbox" value="React" v-model="selectedFrameworks"> React
<input type="checkbox" value="Angular" v-model="selectedFrameworks"> Angular

<p>你选择了:{{ selectedFrameworks.join(', ') }}</p>
5. 下拉选择框

单选

代码语言:javascript
复制
<select v-model="selectedOption">
  <option disabled value="">请选择</option>
  <option value="A">选项 A</option>
  <option value="B">选项 B</option>
  <option value="C">选项 C</option>
</select>
<p>你选择了:{{ selectedOption }}</p>

多选

代码语言:javascript
复制
<select v-model="selectedOptions" multiple>
  <option value="A">选项 A</option>
  <option value="B">选项 B</option>
  <option value="C">选项 C</option>
</select>
<p>你选择了:{{ selectedOptions.join(', ') }}</p>

高级技巧:让表单更智能
1. 值绑定

绑定动态值

代码语言:javascript
复制
<input type="checkbox" v-model="toggle" true-value="Yes" false-value="No">
<p>状态:{{ toggle }}</p>

绑定对象

代码语言:javascript
复制
<select v-model="selectedObject">
  <option :value="{ id: 1, name: 'Vue' }">Vue</option>
  <option :value="{ id: 2, name: 'React' }">React</option>
</select>
<p>你选择了:{{ selectedObject.name }}</p>
2. 修饰符
  • .lazy:仅在 change 事件时同步数据。
  • .number:将输入值自动转为数字。
  • .trim:自动移除首尾空格。
代码语言:javascript
复制
<input v-model.lazy="lazyInput" placeholder="Change 时更新">
<input v-model.number="numericInput" type="number" placeholder="数字输入">
<input v-model.trim="trimmedInput" placeholder="去除首尾空格">

总结

v-model 就像一个神奇的工具箱,能帮我轻松处理表单的各种场景,无论是基础的文本框,还是更复杂的复选框和选择框,都能轻松搞定。

如果你也被表单数据同步折腾过,不妨试试 Vue 的 v-model 吧,说不定就能找到偷懒的新乐趣! 记住:写代码,不是为了更努力,而是为了更聪明 😉

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2026-06-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • v-model 表单输入绑定详解:从文本框到自定义组件
  • 什么是 v-model?
  • 常见表单场景:代码就是答案
    • 1. 文本框
    • 2. 多行文本
    • 3. 单选按钮
    • 4. 复选框
    • 5. 下拉选择框
  • 高级技巧:让表单更智能
    • 1. 值绑定
    • 2. 修饰符
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档