exercises.md 2.1 KB
Newer Older
Z
zhaoss 已提交
1
# v-model
Z
zhaoss 已提交
2

Z
zhaoss 已提交
3
 <div style="color: pink;font-size:22px;font-weight:700">小常识:</div>
Z
zhaoss 已提交
4

Z
zhaoss 已提交
5
 v-model 指令我们大家很熟悉了吧,该指令可以在表单 input、textarea 及 select 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。
Z
zhaoss 已提交
6 7 8 9
v-model 会忽略所有表单元素的 value、checked、selected attribute 的初始值而总是将 Vue 实例的数据作为数据来源。你应该通过 JavaScript 在组件的 data 选项中声明初始值。

**文本框**
下面代码中p标签的值会根据上方文本框输入的值的改变而改变。
Z
zhaoss 已提交
10

Z
zhaoss 已提交
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
```html
<input v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>
```
**复选框**

```html
<input type="checkbox" id="checkbox" v-model="checked">
<label for="checkbox">{{ checked }}</label>
```
多个复选框

```html
<input type="checkbox" id="jack" value="Jack" v-model="checkedNames">
<label for="jack">Jack</label>
<input type="checkbox" id="john" value="John" v-model="checkedNames">
<label for="john">John</label>
<input type="checkbox" id="mike" value="Mike" v-model="checkedNames">
<label for="mike">Mike</label>
<br>
<span>Checked names: {{ checkedNames }}</span>
```
**选择框**

```html
<div id="example-5">
  <select v-model="selected">
    <option disabled value="">请选择</option>
    <option>A</option>
    <option>B</option>
    <option>C</option>
  </select>
  <span>Selected: {{ selected }}</span>
</div>
```
上面只是为大家举了几个小案例,当然我们v-model绑定的值一定是我们在data中定义好的!

<br>

Z
zhaoss 已提交
50
 <div style="color: blue;font-size:22px;font-weight:700">小测试:</div>
Z
zhaoss 已提交
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71


下列关于 v-model 的说法,哪项是不正确的?<br/><br/>

## 答案

v-model 是内置指令,不能用在自定义组件上

## 选项

### A

v-model 能实现双向绑定

### B

v-model 本质上是语法糖,它负责监听用户的输入事件以更新数据

### C

对 input 使用 v-model,实际上是指定其 :value 和 @input