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

Vue:数据双向绑定

Vue 的 v-model 实现了表单元素与数据的双向绑定。当数据变化时,视图自动更新;当用户通过视图修改内容时,数据也会同步变化。这种设计简化了表单交互的逻辑。


基础用法

<template><div><!-- 输入框与数据双向绑定 --><input v-model="message" placeholder="输入内容"><p>你输入的内容是:{{ message }}</p><!-- 文本域 --><textarea v-model="text"></textarea><!-- 下拉选择 --><select v-model="selected"><option value="A">选项A</option><option value="B">选项B</option></select></div>
</template><script>
export default {data() {return {message: "",text: "",selected: "A"};}
};
</script>

处理复选框(Checkbox)

单个复选框(绑定布尔值)
<template><div><input type="checkbox" v-model="isChecked"> 是否同意</div>
</template><script>
export default {data() {return { isChecked: false }}
};
</script>
多个复选框(绑定数组)
<template><div><input type="checkbox" value="游泳" v-model="hobbies"> 游泳<input type="checkbox" value="跑步" v-model="hobbies"> 跑步<p>选择的爱好:{{ hobbies }}</p></div>
</template><script>
export default {data() {return { hobbies: [] }  // 必须是数组}
};
</script>

处理单选框(Radio)

<template><div><input type="radio" value="" v-model="gender"><input type="radio" value="" v-model="gender"> 女</div>
</template><script>
export default {data() {return { gender: "男" }}
};
</script>

修饰符(Modifiers)

.lazy

将同步时机从 input 事件改为 change 事件(输入框失去焦点时更新):

<input v-model.lazy="message">
.number

自动将输入值转为数字类型:

<input v-model.number="age" type="number">
.trim

自动去除首尾空格:

<input v-model.trim="username">

原理浅析

v-model 本质是一个语法糖,相当于同时使用 v-bindv-on。比如对于输入框:

<input :value="message" @input="message = $event.target.value"
>

等价于:

<input v-model="message">

自定义组件中使用

在自定义组件中,v-model 默认绑定 value 属性和监听 input 事件。例如:

<!-- 子组件 -->
<custom-input v-model="msg"></custom-input><!-- 等价于 -->
<custom-input :value="msg" @input="msg = $event"
></custom-input>

在子组件内部通过 props 接收和 $emit 触发:

// 子组件代码
export default {props: ['value'],methods: {handleInput(e) {this.$emit('input', e.target.value);}}
}
http://www.xdnf.cn/news/7084.html

相关文章:

  • 强化学习笔记(一)基本概念
  • 存储系统01——存储系统框架
  • C++ 蓝桥 STEMA 真题模拟测试卷一(选择题)
  • Diffusion模型入门指南:从零开始理解AI图像生成
  • 数字化转型- 数字化转型路线和推进
  • 刘家祎双剧收官见证蜕变,诠释多面人生
  • 记录:echarts实现tooltip的某个数据常显和恢复
  • 哈希表(2):
  • 校园导游大模型介绍
  • 微积分基本规则及示例解析
  • 【爬虫】DrissionPage-5
  • 第九届御网杯大赛赛题资源加解题思路
  • 手撕I2C和SPI协议实现
  • 豆粕ETF投资逻辑整理归纳-20250511
  • Centos7.9同步外网yum源至内网
  • 山东大学计算机图形学期末复习9——CG12上
  • 【部署】读取excel批量导入dify的QA知识库
  • 【Changer解码头详解及融入neck层数据的实验设计】
  • Fidder基本操作
  • Spring Initializr快速创建项目案例
  • Spark,连接MySQL数据库,添加数据,读取数据
  • Foupk3systemX5OS邮箱上线通知
  • Cadence Allegro安装教程及指导
  • Almalinux中出现ens33 ethernet 未托管 -- lo loopback 未托管 --如何处理:
  • JWT令牌验证
  • 45、简述web.config⽂件中的重要节点
  • Leaflet使用SVG创建动态Legend
  • 文件读取漏洞路径与防御总结
  • AI日报 - 2024年5月17日
  • PyTorch实现三元组损失Triplet Loss