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