2.4 双向绑定

输入框的值也可以绑定,例如有这样的一个input(第3行):
<div id="app">
    <p>{{username==''?'请登录':'你好,'+username+',欢迎回到我们大家庭'}}</p>
    <input type="text" v-bind:value="textValue"/>
    <div>
        {{textValue}}
    </div>
    <img alt="Vue logo" src="./assets/logo.png">
    <HelloWorld msg="Welcome to Your Vue.js App"/>
    <div v-html="html">
    </div>
</div>
用属性绑定value的方式,把变量textValue绑定到input的value,接着随便定义一下textValue的值:
data() {
    return {
      username: "中二之魂",
      message:"正在加载中",
      html:'<a href="https://www.codessp.cn">学习平台</a>',
      textValue:'一个值'
    };
  },
编译后显示如下,第一个“一个值”是输入框,我们可以改掉它,输入别的值,第二个“一个值”是div的内容,这两个值都来自于变量textValue:
现在,我们修改输入框的值,第二个输入框的值是不会改变的:
这表示原来的textValue的值没有发生改变。
但是,有时候(大多数时候)输入框的值很可能被提交到后台,否则就不会用输入框了。那么输入框当前的值在哪里呢?肯定不是textValue。那只能通过jQuery取出这个框的值。而双向绑定,就是为了解决这个问题。
把html模板部分的第3行代码,改成这样:
<input type="text" v-model="textValue"/>
再试一次,就发现下面的值也跟着改了:
说明textValue的值跟着改变。这就是双向绑定:textValue的值显示在页面,同时用户修改了textValue绑定的元素的值也会立刻反射到textValue上。
表单的其他可编辑的元素,都可以用v-model做到双向绑定。