vue computed 计算属性 给计算属性变量赋值时 完整语法 get set(工作)
效果

核心代码
<template>
<div>
<span>全选:</span>
<!-- 4. v-model 关联全选 - 选中状态 -->
<input type="checkbox" v-model="isAll" />
<button @click="btn">反选</button>
<ul>
<li v-for="(obj, index) in arr" :key="index">
<!-- 3. 对象.c - 关联 选中状态 -->
<input type="checkbox" v-model="obj.c" />
<span>{{ obj.name }}</span>
</li>
</ul>
</div>
</template>
<script>
export default {
data () {
return {
arr: [
{
name: "猪八戒",
c: false,
},
{
name: "孙悟空",
c: false,
},
{
name: "唐僧",
c: false,
},
{
name: "白龙马",
c: false,
},
],
}
},
computed: {
isAll: {
set (val) {
this.arr.forEach(obj => obj.c = val)
},
get () {
return this.arr.every(obj => obj.c === true)
}
}
},
methods: {
btn () {
this.arr.forEach(obj => obj.c = !obj.c)
}
}
反选效果
