二次封装el-checkbox-group
时间: 2023-11-24 16:38:21 浏览: 101
二次封装 `el-checkbox-group` 可以通过创建一个自定义组件来实现。下面是一个简单的示例:
```vue
<template>
<el-checkbox-group v-model="checkedValues">
<el-checkbox v-for="option in options" :key="option.value" :label="option.value">{{ option.label }}</el-checkbox>
</el-checkbox-group>
</template>
<script>
export default {
props: {
options: {
type: Array,
required: true
},
value: {
type: Array,
default: () => []
}
},
data() {
return {
checkedValues: this.value
};
},
watch: {
checkedValues(newValues) {
this.$emit('input', newValues);
}
}
};
</script>
```
在上面的示例中,我们创建了一个名为 `CustomCheckboxGroup` 的组件,该组件接受两个 props:`options` 和 `value`。`options` 是一个数组,包含了每个选项的值和标签。`value` 是一个数组,表示当前选中的值。
在组件的模板中,我们使用 `el-checkbox-group` 来实现多选功能,并使用 `v-for` 指令遍历 `options` 数组来渲染每个选项的复选框。
在组件的数据中,我们使用 `checkedValues` 来保存当前选中的值,并将其初始化为传入的 `value`。
通过监听 `checkedValues` 的变化,我们使用 `$emit` 方法触发名为 `input` 的自定义事件,并传递新的选中值给父组件。
现在,你可以在父组件中使用这个自定义组件来代替 `el-checkbox-group`,并传递 `options` 和 `value` 属性来实现二次封装了。
阅读全文