vue3 绑定多个model技巧之 抽取useVModel
test.vue
<Form v-model:name="form.name" v-model:surname="form.surname" @submit="onSubmit" /> {{form.name}} {{form.surname}}
form.vue
重点来了抽取
useVModel.jsimport { computed, getCurrentInstance } from 'vue' export const useVModel = (props, propName) => { const vm = getCurrentInstance().proxy return computed({ get() { return props[propName] }, set(value) { vm.$emit(`update:${propName}`, value) }, }) }
亲测效果如下