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>
​
相关推荐
feng_you_ying_li几秒前
C++11可变模板参数,包扩展,emplace系列和push系列的区别
前端·c++·算法
hashiqimiya2 分钟前
npm查看依赖
前端·npm·node.js
guojb8243 分钟前
当 Vue 3 遇上桥接模式:手把手教你优雅剥离虚拟滚动的业务大泥球
vue.js·设计模式
Ticnix7 分钟前
NestJs--Prisma 7的安装与数据库配置(超完整)
前端·nestjs
Bacon13 分钟前
CDP、Puppeteer 与无头浏览器:它们到底什么关系?
前端·javascript·node.js
kyriewen13 分钟前
你的网站被“下毒”了?XSS和CSRF:前端安全的两大“毒瘤”
前端·javascript·安全
Irene199114 分钟前
Web前端开发转行大数据开发,可行性分析及学习路线
大数据·前端·转行
咸鱼翻身了么14 分钟前
大文件上传-spark-md5
前端·后端
API快乐传递者15 分钟前
Python 爬虫获取 1688 商品详情 API 接口实战指南
java·前端·python
PeterMap16 分钟前
Vue条件渲染详解:v-if、v-show用法与实战指南
前端·vue.js