????前兩天我在做項目的時候,遇到了如何模擬點擊表單元素這個動作,當(dāng)時我就想到了vue中通過$refs方法來獲取vue實例,然后再將實例轉(zhuǎn)化為jquery對象,從而通過jquery Api的prop方法來模擬選中。
? ? 當(dāng)然這種方法是走的通的,然而存在的問題也是明顯的:第一:我們?yōu)榱四M選中這一行為,不得不單獨引入了非常大的jquery包,這無疑增加了項目的冗余程度,再者vue官方是不推薦使用jquery操作dom;第二:雖然jquery簡化了操作dom的操作,但是它的本質(zhì)還是沒變,即操作dom,而執(zhí)行這種操作所需要的代價也是巨大的,所以是不可取的。
? ? 正是基于此vue對于表單元素,特別是select和input提出了雙向數(shù)據(jù)綁定的命令v-model

? ? 對于select單選:
? ? ? ? ? ? 我們可以通過v-model在input進(jìn)行雙向綁定,然后將input的value屬性動態(tài)綁定為index(這里當(dāng)然可以自由發(fā)揮,你也可以綁定其他值),然后通過v-model綁定的值(currentIndex)是否與當(dāng)前選項value相等從而達(dá)到模擬選中,而且vue會忽略表單元素中的checked屬性,直接使用v-model綁定的值
對于復(fù)選:
????要注意的是v-model綁定的是一個數(shù)組
對于select:
? ? 注意v-model綁定是寫在select標(biāo)簽上而非option上
????確實通過這種雙向數(shù)據(jù)綁定,當(dāng)然這也是vue區(qū)別于react的控制表單元素亮點之一,假如我們還用jquery那種模擬選中,豈不是 南轅北轍,使用vue的意義也不在了