中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Vue中v-model指令的原理是什么

發布時間:2022-04-26 16:12:23 來源:億速云 閱讀:206 作者:iii 欄目:大數據

今天小編給大家分享一下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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

曲松县| 凤凰县| 太白县| 海淀区| 方正县| 民丰县| 墨竹工卡县| 邵阳市| 延津县| 多伦县| 白银市| 米脂县| 穆棱市| 石柱| 普宁市| 广灵县| 桂林市| 陇南市| 睢宁县| 隆昌县| 深水埗区| 万载县| 宁阳县| 西峡县| 佛冈县| 郁南县| 荔浦县| 揭西县| 赤壁市| 屏南县| 辽宁省| 准格尔旗| 乌拉特前旗| 宝丰县| 南皮县| 中宁县| 腾冲县| 长泰县| 吉木萨尔县| 和田市| 阿鲁科尔沁旗|