vue2和vue3 全选

vue3

javascript 复制代码
<template>
  <input type="checkbox" v-model="selectAll" />全选
  <ul>
    <li v-for="item in list" :key="item.id">
      {{ item.value }} <input type="checkbox" v-model="item.check" />
    </li>
  </ul>
</template>
​
<script>
import { computed, reactive } from '@vue/reactivity'
export default {
  setup () {
    const list = reactive([
      {
        id: 1,
        value: 15,
        check: false
      },
      {
        id: 2,
        value: 78,
        check: false
      },
      {
        id: 3,
        value: 63,
        check: false
      },
      {
        id: 4,
        value: 92,
        check: false
      },
      {
        id: 5,
        value: 38,
        check: false
      }
    ])
    // computed
    const selectAll = computed({
      get () {
        return list.every(item => item.check)
      },
      set (status) {
        console.log(status)
        list.forEach(item => { item.check = status })
      }
    })
    return { list, selectAll }
  }
}
</script>
​

vue2

javascript 复制代码
<template>
  <div>
    <!-- 全选控制框 -->
    <input type="checkbox" v-model="selectAll" />全选
    <!-- 列表 -->
    <ul>
      <li v-for="item in list" :key="item.id">
        {{ item.value }} <input type="checkbox" v-model="item.check" />
      </li>
    </ul>
  </div>
</template>
​
<script>
export default {
  data () {
    return {
      list: [
        {
          id: 1,
          value: 12,
          check: true
        },
        {
          id: 2,
          value: 45,
          check: false
        },
        {
          id: 3,
          value: 78,
          check: false
        },
        {
          id: 4,
          value: 96,
          check: false
        }
      ]
    }
  },
  computed: {
    selectAll: {
      get () {
        return this.list.every(item => item.check)
      },
      set (state) {
        console.log(state)
        this.list.forEach(item => { item.check = state })
      }
    }
  }
}
</script>
​
相关推荐
2501_915918411 小时前
Web 前端可视化开发工具对比 低代码平台、可视化搭建工具、前端可视化编辑器与在线可视化开发环境的实战分析
前端·低代码·ios·小程序·uni-app·编辑器·iphone
程序员的世界你不懂2 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
索迪迈科技2 小时前
网络请求库——Axios库深度解析
前端·网络·vue.js·北京百思可瑞教育·百思可瑞教育
gnip2 小时前
JavaScript二叉树相关概念
前端
一朵梨花压海棠go2 小时前
html+js实现表格本地筛选
开发语言·javascript·html·ecmascript
attitude.x3 小时前
PyTorch 动态图的灵活性与实用技巧
前端·人工智能·深度学习
β添砖java3 小时前
CSS3核心技术
前端·css·css3
空山新雨(大队长)3 小时前
HTML第八课:HTML4和HTML5的区别
前端·html·html5
猫头虎-前端技术3 小时前
浏览器兼容性问题全解:CSS 前缀、Grid/Flex 布局兼容方案与跨浏览器调试技巧
前端·css·node.js·bootstrap·ecmascript·css3·媒体