3.7 双向绑定指令
vue提供了 v-model双向绑定指令 ,用来辅助开发者在 不操作DOM 的前提下,快速 获取表单数 据。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <div id="app"> <!-- 文本框的输入会实时更新到data中的username --> <input type="text" v-model="username"> <!-- vue会把data中的username的数据实时绑定到标签中 --> <p>姓名:{{ username }}</p> <hr> <!-- 属性绑定,不能将文本框的输入实时更新到username中 --> <!-- 单向绑定 --> <!-- 只能vue实时把数据更新到标签中 --> <input type="text" :value="username"> </div> <script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script> <script> const vm = new Vue({ el: '#app', data: { username: '' } }) </script> </body> </html>
输入123
注意:
v-model指令只能配合表单元素一起使用。
3.7.1 v-model 指令的修饰符
为了方便对用户输入的内容进行处理,vue 为 v-model 指令提供了 3 个修饰符,分别是:
修饰符 | 作用 | 示例 |
.number | 自动将用户的输入值转为数值类型 | <input v-model.number="age" /> |
.trim | 自动过滤用户输入的首尾空白字符 | <input v-model.trim="msg" /> |
.lazy | 在“change”时而非“input”时更新 | <input v-model.lazy="msg" /> |
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> </head> <body> <div id="app"> 姓名:<input type="text" v-model.trim="username" /> <hr /> 年龄:<input type="text" v-model.number="age" /> <hr /> 地址:<input type="text" v-model.lazy="address" /> </div> <script src="./lib/vue-2.6.12.js"></script> <script> const vm = new Vue({ el: '#app', data: { // 姓名 username: 'zs', // 年龄 age: 1, // 地址 address: '北京市', }, }) </script> </body> </html>