Vue組件內部實現一個雙向數據綁定

來源於:阿賢博客javascript

思路:父組件經過props傳值給子組件,子組件經過 $emit 來通知父組件修改相應的props值,具體實現以下:
import Vue from 'vue'
const component = {
    props: ['value'],
      template: `
        <div>
            <input type="text" @input="handleInput" :value="value">
        </div>
    `,
      data () {
          return{}
      },
      methods: {
        handleInput (e) {
            // 不能在組件內修改props的參數,因此須要使用$emit通知父組件修改
            this.$emit('input', e.target.value)
        }
    }
}

new Vue({
    components: {
        CompOne: component
      },
      el: '#root',
      template: `
        <div>
          <comp-one :value1="value" @input="value = arguments[0]"></comp-one>
        </div>
      `,
  data () {
    return{
        value: '123'
    }
  }
})

來源於:阿賢博客php

相關文章
相關標籤/搜索