vue 如何封装一个 v-model组件
时间: 2023-10-18 19:15:17 浏览: 98
Vue v-model组件封装(类似弹窗组件)
要封装一个 v-model 组件,需要通过 `model` 选项来指定父组件中 `v-model` 绑定的属性和触发更新的事件。以下是一个简单的例子:
```javascript
Vue.component('my-input', {
props: ['value'],
model: {
prop: 'value',
event: 'input'
},
template: `
<input :value="value" @input="$emit('input', $event.target.value)">
`
})
```
在父组件中,可以使用 `v-model` 来绑定这个组件:
```html
<my-input v-model="message"></my-input>
```
这样,当用户在 `my-input` 组件中输入时,会触发组件中的 `input` 事件,然后父组件中的 `message` 属性就会被更新。反之,如果在父组件中更新了 `message` 属性的值,`my-input` 组件中的 `value` 属性也会被更新,从而实现了双向绑定。
阅读全文