關於vue的v-model表單控件綁定,vue官網是這么說
呢怎么在自己寫的組件中使用v-model,比如我要自己做一個酷炫帥的下拉框
這時候要扯到自定義事件,先來瞄一眼官網所說的語法糖
其實我當時看完有點沒懂。。哈哈
首先,input是一個和change差不多的事件
1.onchange在改變了input的value的條件下,失去焦點時才會觸發(若change和blur事件都符合條件則先change后blur)
2.oninput則value一改變就觸發
貼上菜鳥詳細了解鏈接,來點一下
原理后面聊,先了解下怎么用
1 <template> 2 <div 3 v-clickoutside="handleClose" 4 class="llw-select"> 5 <!--change--> 6 <input type="text" class="llw-input" 7 :value="currentValue" 8 @change="handleChange" 9 /> 10 </div> 11 </template> 12 <script> 13 export default { 14 name: 'llwSelect', 15 props: { 16 value: [String, Number] 17 } 18 data () { 19 return { 20 currentValue: this.value 21 } 22 }, 23 methods: { 24 handleChange (event) { 25 this.currentValue = event.target.value 26 this.$emit('input', event.target.value) // 這里可以讓外部的v-model監聽 27 } 28 } 29 } 30 </script>
外面的v-model在組件中用this.$emit('input')來觸發,在這里我綁定的是change事件,真正的應該是使用input~~~~
--------------------------------------------------------------華麗麗分割線------------------------------------------------------------------
當使用v-model的時候,這么神奇而有好用的東西,vue源碼能了解出來點東西不~~~~~~~~~~~~~~~~
皮卡丘明天總結
ps...最愛夢璃了