詳解vue中v-model的實現(xiàn)原理
這是一個一直很經(jīng)典的面試題 咱們廢話不多說
v-model可以實現(xiàn)數(shù)據(jù)的雙向綁定,也是vue的最突出的優(yōu)勢。其實 v-model 實際上是一個語法糖。其中原理很簡單,只要就是兩部分,一個是事件監(jiān)聽,一個是屬性綁定。等下會用代碼來展示這兩部分。舉個v-model實現(xiàn)數(shù)據(jù)雙向綁定的例子:
<body>
<div id="app">
<p>展示value1: {{ value1 }}</p>
<input type="text" v-model="value1" />
</div>
</body>
<script type="text/javascript" src="./js/vue.min.js"></script>
<script>
const vm = new Vue({
el: "#app",
data: {
value1: ""
}
})
</script>
從上代碼可以看出,當我在輸入框輸入的值改變的時候,所展示的內(nèi)容也會改變;
<body>
<div id="app">
<p>展示value1: {{ value1 }}</p>
<input type="text" v-model="value1" />
<p>綁定的數(shù)據(jù)為:{{value2}}</p>
<input type="text" :model="value2" @input="changeVal" />
</div>
</body>
<script type="text/javascript" src="./js/vue.min.js"></script>
<script>
const vm = new Vue({
el: "#app",
data: {
value1: "",
value2: ""
},
methods: {
changeVal(e) {
console.log(e.target.value, '我輸入的值在改變');
this.value2 = e.target.value;
}
}
})
</script>
由上代碼所述 他的操作原理是 先監(jiān)聽數(shù)值改變 然后在進行賦值;
<div id="root">
單向數(shù)據(jù)綁定【v-bind:value】: <input type="text" v-bind:value="name" /><br />
雙向數(shù)據(jù)綁定【v-model:value】: <input type="text" v-model:value="name" /><br />
單向數(shù)據(jù)綁定【:value】: <input type="text" :value="name" /><br />
雙向數(shù)據(jù)綁定【v-model】: <input type="text" v-model="name" />
</div>
<script src="./js/vue.min.js"></script>
<script>
Vue.config.productionTip = false
new Vue({
el: '#root',
data: {
name: 'JOJO'
}
})
</script>到此這篇關(guān)于詳解vue中v-model的實現(xiàn)原理的文章就介紹到這了,更多相關(guān)vue v-model實現(xiàn)原理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue實現(xiàn)一個獲取按鍵展示快捷鍵效果的Input組件
這篇文章主要介紹了vue如何實現(xiàn)一個獲取按鍵展示快捷鍵效果的Input組件,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下2021-01-01
詳解如何實現(xiàn)Element樹形控件Tree在懶加載模式下的動態(tài)更新
這篇文章主要介紹了詳解如何實現(xiàn)Element樹形控件Tree在懶加載模式下的動態(tài)更新,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-04-04
如何使用el-table實現(xiàn)純前端導(dǎo)出(適用于el-table任意表格)
我們?nèi)粘W鲰椖?特別是后臺管理系統(tǒng),常常需要導(dǎo)出excel文件,這篇文章主要給大家介紹了關(guān)于如何使用el-table實現(xiàn)純前端導(dǎo)出的相關(guān)資料,本文適用于el-table任意表格,需要的朋友可以參考下2024-03-03
基于vue實現(xiàn)多功能樹形結(jié)構(gòu)組件的示例代碼
一個優(yōu)雅展示樹形結(jié)構(gòu)數(shù)據(jù)的 Vue 組件,遞歸渲染每個節(jié)點及其子節(jié)點,支持自定義顏色、文本和布局,通過獨特的樣式巧妙處理不同層級,為用戶打造豐富的視覺盛宴,文中通過代碼給大家介紹的非常詳細,感興趣的同學(xué)可以自己動手嘗試一下2024-02-02
使用vue-draggable-plus實現(xiàn)拖拽排序
最近遇到一個需求,在 Vue3 的一個 H5 頁面當中點擊拖拽圖標上下拖動 tab 子項,然后點擊保存可以保存最新的 tab 項順序,同事說可以用 vue-draggable-plus 這個庫來實現(xiàn)拖拽,所以本文給大家介紹了如何使用vue-draggable-plus實現(xiàn)拖拽排序,需要的朋友可以參考下2024-01-01
Vue使用openlayers實現(xiàn)繪制圓形和多邊形
這篇文章主要為大家詳細介紹了Vue如何使用openlayers實現(xiàn)繪制圓形和多邊形,文中的示例代碼講解詳細,感興趣的小伙伴快跟隨小編一起動手嘗試一下2022-06-06

