【vue】---- v-model在自定義組件中的使用


1. v-model簡介

 可以用 v-model 指令在表單 <input>、<textarea> 及 <select> 元素上創建雙向數據綁定,它的本質是一個語法糖,在單向數據綁定的基礎上,增加了監聽用戶輸入事件並更新數據的功能。

 

2. v-model的實現原理

 動態綁定了 input 的 value 指向了 messgae 變量,並且在觸發 input 事件的時候去動態把 message 設置為目標值,這樣就完成了雙向數據綁定。

<input 
    v-bind:value="message"
    v-on:input="message=$event.target.value">

 

3. v-model在自定義組件中的使用

 定義了一個 value 的 prop,並且在 input 事件的回調函數中,通過 this.$emit('input', value) 派發了一個事件,從而使 v-model 生效。

Vue.component('example', {
  template: `<div>
    <input type="text" :value="val" @input="handleVal"/>
  </div>`,
  data: function () {
    return {
      val: this.value //將prop屬性綁定到data屬性上,以便修改prop屬性(Vue不允許直接修改prop屬性的值)
    }
  },
  props: ['value'], //接收一個 value prop
  methods: {
    handleVal($event) {
      var value = $event.target.value;
      this.$emit('input', value); //觸發 input 事件,並傳入新值
    }
  }
});

 


免責聲明!

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



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