記一次Vue中v-model和v-bind區別


由於v-model 只是語法糖, <input v-model="message"> 與下面的兩行代碼是一致的:

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

<p v-bind:class="someclass"></p>
如果不加 v-bind 那么 someclass 就是個常量,沒有任何動態數據參與。當加上 v-bind 之后,它的值 someclass 不是字符串,而是vue實例對應的 data.someclass 這個變量。

做一個實驗:

在data對象中創建兩個變量:name,value

<input :value="name" v-model="body">

顯示兩個變量值:

<h1>{{name}}---{{body}}</h1>

結果:

1、修改input輸入框中的值,body隨着輸入框的值變化,name不變

   修改name的值,輸入框和body都不變

2、將v-model=“body”去掉,即<input :value="name" >

   修改input輸入框中的值,name不變

      修改name的值,輸入框也隨之變化

3、給name和body都賦初始值,即name:"name",body:"body"

    當<input :value="name" v-model="body">,輸入框初始值為body

  當i<input :value="name" >,輸入框初始值為name

總結:

v-model會忽略所有表單元素的 valuecheckedselected 特性的初始值而總是將 Vue 實例的數據作為數據來源。你應該通過 JavaScript 在組件的data選項中聲明初始值

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM