vue中的v-model原理,與組件自定義v-model


VUE中的v-model可以實現雙向綁定,但是原理是什么呢?往下看看吧

根據官方文檔的解釋,v-model其實是一個語法糖,它會自動的在元素或者組件上面解析為 :value="" 和 @input="", 就像下面這樣

1 // 標准寫法
2 <input v-model="name">
3 
4 // 等價於
5 <input :value="name" @input="name = $event.target.value">
6 
7 // 在組件上面時
8 <div :value="name" @input="name = $event"></div>

1.當在input輸入框輸入內容時,會自動的觸發input事件,更新綁定的name值。

2.當name的值通過JavaScript改變時,會更新input的value值

根據上面的原理,vue就通過v-model實現雙向數據綁定

 

看了前面的解釋,對於v-model有了一定的理解。下面我們就來實現自己組件上面的v-model吧

需求:實現一個簡單的點擊按鈕,每次點擊都自動的給綁定值price加100。 組件名為 AddPrice.vue

// AddPrice.vue
// 通過props接受綁定的value參數
<template>
  <div @click="$emit('input',value + 100 )">點擊加錢<div>
</template>

<script>
  export default {
    props: ['value']
  }
    
</script>

// 在父組件中調用
<add-price v-model="price"></add-price>

組件中使用props接受傳入的參數值value, 組件點擊事件觸發並 使用$emit調用父組件上的input事件,實現了自定義的雙向綁定

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM