亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue中v-model指令的原理分析

發布時間:2021-07-07 14:32:27 來源:億速云 閱讀:159 作者:小新 欄目:web開發

小編給大家分享一下Vue中v-model指令的原理分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

vue的v-model是一個十分強大的指令,它可以自動讓原生表單組件的值自動和你選擇的值綁定,

我們來看一下它的效果:

輸入框的值和一個數據是綁定的,輸入框的值變化,和他綁定的值也會發生變化

我們可以參照官方文檔的例子    http://cn.vuejs.org/v2/guide/forms.html#文本

Vue中v-model指令的原理分析

我們在手動輸入 hello的過程中 下面和他綁定的p標簽的值也是實時變化的

如此神奇的效果是如何實現的呢? 還是參照官方文檔

http://cn.vuejs.org/v2/guide/components.html#使用自定義事件的表單輸入組件

Vue中v-model指令的原理分析

官方也說明了,v-model只不過是一個語法糖而已,真正的實現靠的還是

  1. ?v-bind:綁定響應式數據

  2. 觸發 input 事件 并傳遞數據 (核心和重點)

現在我們也想設計自己的表單組件,也想通過 v-model暴露組件的值,怎么做呢?

例如我們要設計一個 自定義貨幣輸入的組件, 通過 v-model暴露組件的值,我們可能使用如下的組件代碼

<currency-input v-model="price"></currency-input>

然后再使用 這個我們自己定義的組件時, 組件內部會暴露出 組件的值到 v-model所綁定的值中去;那它是如何實現的呢?\

要搞明白v-model的實現,需要通過查看官方的自定義v-model組件示例的部分代碼來進行說明

Vue中v-model指令的原理分析

我們看上圖中的代碼,有行  $emit的代碼,這行代碼實際上會觸發一個 input事件, 'input'后的參數就是傳遞給v-model綁定的屬性的值,也就是說 v-model實現自定義的數據綁定的原理是這樣的:

首先,大體的組件結構:

<custom-comp v-model="myattr">
  ?<input /> ??
  <select> ?? 
</custom-comp>

也就是自定義的組件內部一般包含原生的表單組件(當然非表單的組件也可以)

然后,給原生控件綁定事件,捕捉到原生組件的值,利用 $emit方法,觸發input方法,組件監聽到 input事件然后把值傳入到myattr中.

這里有個疑問,為什么是 'input'呢??? 三個字,看文檔!

這個就是 vue對 v-model實現的一個規則: 使用了v-model的組件會

自動監聽 input 事件,并把這個input事件所攜帶的值 傳遞給v-model所綁定的屬性!這樣組件內部的值就給到了父組件了

通過以上講解,我們總結一下如何利用v-model實現自定義的表單組件:

監聽原生組件的事件,當獲取到原生組件的值后把 值通過調用 $emit('input' ,data) 方法去觸發 input事件 

以上是“Vue中v-model指令的原理分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vu
AI

和政县| 泰兴市| 宁晋县| 郁南县| 合水县| 海原县| 汶川县| 德昌县| 綦江县| 当阳市| 绥棱县| 清涧县| 竹溪县| 镇坪县| 土默特右旗| 双城市| 兴海县| 莱芜市| 商洛市| 巨野县| 龙陵县| 石林| 绥宁县| 乌鲁木齐县| 云浮市| 瓮安县| 资讯| 侯马市| 宝清县| 桐乡市| 宁远县| 沁阳市| 桂东县| 石楼县| 饶河县| 和平区| 玛曲县| 泸溪县| 科技| 德钦县| 广丰县|