vue2和vue3 全选

 vue3

<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

<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>
​

相关推荐

  1. vue2vue3

    2024-04-12 09:26:03       33 阅读
  2. Vue2/Vue3-插槽()

    2024-04-12 09:26:03       58 阅读
  3. vue2vue3

    2024-04-12 09:26:03       37 阅读
  4. vue2vue3的区别

    2024-04-12 09:26:03       55 阅读
  5. Vue3Vue2的区别

    2024-04-12 09:26:03       50 阅读
  6. Vue2Vue3的区别

    2024-04-12 09:26:03       60 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-12 09:26:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-12 09:26:03       101 阅读
  3. 在Django里面运行非项目文件

    2024-04-12 09:26:03       82 阅读
  4. Python语言-面向对象

    2024-04-12 09:26:03       91 阅读

热门阅读

  1. HarmonyOs开发之———页签切换、组件状态管理

    2024-04-12 09:26:03       34 阅读
  2. 如何保证数据库、缓存的双写一致?

    2024-04-12 09:26:03       36 阅读
  3. python实现OCR

    2024-04-12 09:26:03       40 阅读
  4. AUTOSAR ARXML处理 - C#的解析代码(四)

    2024-04-12 09:26:03       29 阅读
  5. C语言的顺序表详解

    2024-04-12 09:26:03       42 阅读
  6. 程序员之路:兴趣还是职业发展?

    2024-04-12 09:26:03       35 阅读
  7. 久菜盒子|留学|推荐信|信息交换技术

    2024-04-12 09:26:03       37 阅读
  8. Golang基础-12

    2024-04-12 09:26:03       36 阅读
  9. Oracle 到 MySQL 数据库迁移

    2024-04-12 09:26:03       39 阅读
  10. Centos7 k8s 集群 - Mysql主从架构

    2024-04-12 09:26:03       31 阅读