vue 自定义组件实现 v-model
// 子组件
<template>
<el-radio-group @change="update" v-model="value">
<el-radio v-for="item in options.options" :name="item.value" :key="item.value" :label="item.value">{{item.value}}</el-radio>
</el-radio-group>
</template>
<script>
export default {
model: {
props: 'modelVal',
event: 'change'
},
data() {
return {
value: undefined
};
},
props: {
modelVal: {
type: String
},
options: Object
},
mounted() {
this.value = this.options.defaultValue
},
methods: {
update(){
this.$emit('change', this.value)
}
}
};
</script>
父组件
<component
:is="'Rb-'+ item.type"
:options="item.options"
v-model="form.radio"
></component>