1. 程式人生 > >Vue v-model原理解析

Vue v-model原理解析

  從最初學習Vue就知道v-model可以實現雙資料繫結,但它能實現繫結的原理到底是什麼呢?通過檢視官方文件和各種部落格資料,以下是我的理解。

  根據官方文件介紹,v-model本質上就是語法糖,即利用v-model繫結資料後,其實就是既綁定了資料,又添加了一個input事件監聽,如下:

 

當在input元素中使用v-model實現雙資料繫結,其實就是在輸入的時候觸發元素的input事件,通過這個語法糖,也能夠實現父子元件資料的雙向繫結,程式碼如下:

父元件

子元件

通過v-bind把父元件的資料繫結到了子元件的props屬性中,而在props上預設用value取值,然後通過$emit觸發事件input,因為v-model繫結的事件是input,故在子元件上觸發了父元件的input事件,通過觸發事件來進行傳值,實現了父子元件資料的雙向繫結,相對於直接使用v-bind以及自定義事件程式碼量有所減少。