Vue2+ElementUI下拉、Select组件的封装
<template>
<el-select
v-model="currentValue"
:placeholder="placeholder"
:clearable="clearable"
@change="handleChange"
>
<el-option
v-for="item in options"
:key="item[valueKey]"
:label="item[labelKey]"
:value="item[valueKey]"
></el-option>
</el-select>
</template>
<script>
export default {
props: {
value: {},
options: {
type: Array,
default: () => []
},
placeholder: {
type: String,
default: '请选择'
},
clearable: {
type: Boolean,
default: true
},
valueKey: {
type: String,
default: 'value'
},
labelKey: {
type: String,
default: 'label'
}
},
data() {
return {
currentValue: this.value
};
},
watch: {
value(newVal) {
this.currentValue = newVal;
}
},
methods: {
handleChange(val) {
this.$emit('input', val);
this.$emit('change', val);
}
}
};
</script>
这个代码实例展示了如何在Vue2和ElementUI中封装一个下拉选择组件,该组件可以接收外部传入的value
,options
,placeholder
,clearable
,valueKey
和labelKey
等属性,并且在选项变化时发出input
和change
事件。这是一个简洁且可复用的下拉选择组件封装示例。
评论已关闭