<div id="app" v-cloak>
  <p>{{fullname()}}</p>
  <hr />
  <label> First Name</label>
  <input type="text" v-model="firstName" />
 
  <label> Last Name</label>
  <input type="text" v-model="lastName" />
</div>

此时在输入框中输入的操作都会自动更新 app 中的数据并实时显示在上面的表达式中。

如果是用js原生实现则需要这么多:如果只有一个还好,假如有数百个类似的更新,则必须为每个元素都赋予独立的ID。

原理

v-model 数据绑定 实际上就是由 v-bind 属性值绑定v-on 事件监听 组合起来的语法糖,以下两种写法是等价的:

<input type="text" :value="firstName" @input="updateFirstName" />
<input type="text" v-model="firstName" />