欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vue 封装组件 实现自定义双向绑定

程序员文章站 2022-06-07 17:58:09
...

当组件使用 value 实现了一个功能,但又需要实现双向绑定,这时就会有冲突。
通过 定义组件时的 model 选项,从而实现了自定义组件 v-model 功能。
类似编辑器的功能,可能用 v-model 的方式会更好,可以通过这种方式使用。

import Vue from 'vue'

const component = {
  model: {
    prop: 'value1',
    event: 'change'
  },
  props: ['value1'],
  template: `
    <div>
      <input type="text" @input="handleInput" :value="value1"/>
    </div>
  `,
  methods: {
    handleInput (e) {
      this.$emit('change', e.target.value)
    }
  }
}

new Vue({
  components: {
    CompOne: component
  },
  el: '#root',
  data () {
    return {
      value: '123'
    }
  },
  template: `
    <div>
      <comp-one v-model="value"></comp-one>
    </div>
  `
})

转载于:https://www.jianshu.com/p/33321097f48b