Vue3封装一个全选反
时间: 2023-07-25 12:13:37 浏览: 82
购物车全选功能
您好!下面是一个Vue3的全选反选组件的封装示例:
```html
<template>
<div>
<input type="checkbox" v-model="checkedAll" @change="selectAll" /> 全选
<ul>
<li v-for="(item, index) in items" :key="index">
<input type="checkbox" v-model="item.checked" @change="selectOne" />{{item.name}}
</li>
</ul>
</div>
</template>
<script>
import { reactive } from 'vue';
export default {
setup() {
const items = reactive([
{ name: '选项1', checked: false },
{ name: '选项2', checked: false },
{ name: '选项3', checked: false },
{ name: '选项4', checked: false },
]);
const checkedAll = computed({
get() {
return items.every((item) => item.checked);
},
set(value) {
items.forEach((item) => {
item.checked = value;
});
},
});
const selectAll = () => {
checkedAll.value = !checkedAll.value;
};
const selectOne = () => {
checkedAll.value = items.every((item) => item.checked);
};
return {
items,
checkedAll,
selectAll,
selectOne,
};
},
};
</script>
```
这个组件包含了一个全选复选框和一组子复选框,子复选框选中时全选框自动选中,全选框选中时所有子复选框都选中。
希望能够帮到您!
阅读全文