Vue.js_28_v-model 指令

本系列博客汇总在这里:Vue.js 汇总

v-model 指令

  • 一、基本使用方法
  • 二、结合 radio 类型使用
  • 三、结合 checkbox 类型使用
    • 值绑定
  • 四、结合 select 类型使用
  • 五、修饰符
    • 1、lazy 修饰符
    • 2、number 修饰符
    • 3、trim 修饰符


源码工程文件为:

一、基本使用方法

表单控件在实际开发中是非常常见的。特别是对于用户信息的提交,需要大量的表单。Vue 中使用 v-model 指令来实现表单元素和数据的双向绑定。

案例的解析:

Vue.js_28_v-model 指令_第1张图片
当我们在输入框输入内容时,因为 input 中的 v-model 绑定了 message,所以会实时将输入的内容传递给 messagemessage 发生改变。

message 发生改变时,因为上面我们使用 Mustache 语法,将 message 的值插入到 DOM 中,所以 DOM 会发生相应的改变。

所以,通过 v-model 实现了双向的绑定。当然,我们也可以将 v-model 用于 textarea 元素。

v-model 其实是一个语法糖,它的背后本质上是包含两个操作

  • v-bind 绑定一个 value 属性
  • v-on 指令给当前元素绑定 input 事件

如下

<input type="text" v-model="message">

<input type="text" v-bind:value="message" v-on:input="message = $event.target.value">

Vue.js_28_v-model 指令_第2张图片

二、结合 radio 类型使用

当存在多个单选框时。

Vue.js_28_v-model 指令_第3张图片

三、结合 checkbox 类型使用

复选框分为两种情况:单个勾选框和多个勾选框。

  • 单个勾选框
    v-model 即为布尔值。此时 input 的 value 并不影响 v-model 的值。
  • 多个复选框
    当是多个复选框时,因为可以选中多个,所以对应的 data 中属性是一个数组。当选中某一个时,就会将 input 的 value 添加到数组中。

值绑定

绑定是动态的给 value 赋值,我们前面的 value 中的值,都是在定义 input 的时候直接给定的。但是真实开发中,这些 input 的值可能是从网络获取或定义在 data 中的。所以我们可以通过 v-bind:value 动态的给 value 绑定值。

Vue.js_28_v-model 指令_第4张图片

四、结合 select 类型使用

和 checkbox 一样,select 也分单选和多选两种情况。

  • 单选:只能选中一个值。
    v-model 绑定的是一个值。当我们选中 option 中的一个时,会将它对应的 value 赋值到 mySelect 中
  • 多选:可以选中多个值。
    v-model 绑定的是一个数组。当选中多个值时,就会将选中的 option 对应的 value 添加到数组mySelects 中。

Vue.js_28_v-model 指令_第5张图片

五、修饰符

1、lazy 修饰符

默认情况下,v-model 默认是在 input 事件中同步输入框的数据的。也就是说,一旦有数据发生改变对应的 data 中的数据就会自动发生改变。lazy 修饰符可以让数据在失去焦点或者回车时才会更新。
Vue.js_28_v-model 指令_第6张图片

2、number 修饰符

默认情况下,在输入框中无论我们输入的是字母还是数字,都会被当做字符串类型进行处理。但是如果我们希望处理的是数字类型,那么最好直接将内容当做数字处理。number 修饰符可以让在输入框中输入的内容自动转成数字类型。
Vue.js_28_v-model 指令_第7张图片
Vue.js_28_v-model 指令_第8张图片

3、trim 修饰符

如果输入的内容首尾有很多空格,通常我们希望将其去除,trim 修饰符可以过滤内容左右两边的空格。
Vue.js_28_v-model 指令_第9张图片
Vue.js_28_v-model 指令_第10张图片

如有错误,欢迎指正!

你可能感兴趣的:(Vue.js,vue)