当前位置: 首页 > news >正文

使用computed计算属性实现购物车勾选

原理

在 Vue 3 中,computed 属性默认是只读的,但你可以通过提供 set 方法来使它可写。这样,当计算属性的值被修改时,可以触发相应的逻辑来更新相关的数据。

效果示意

在这里插入图片描述

说明

  1. get 方法:用于获取计算属性的值。
  2. set 方法:用于设置计算属性的值。当计算属性的值被修改时,set 方法会被触发。
<template>
  <div style="padding-left: 40px;">
    <ul>
      <li v-for="(item, index) in goodsList" :key="index">
        <el-checkbox v-model="item.isChecked" :label="item.name" size="large" />
        &nbsp;
        <span>{{ item.sum }}</span>
      </li>
    </ul>
    <el-checkbox v-model="isAllChecked" label="全选" size="large" />
      &nbsp;
      <span>{{ total }}</span>
  </div>
</template>

<script setup lang="ts">
import { computed, reactive } from 'vue';

const goodsList = reactive([
  { name: 'xxx', isChecked: false, sum: 24 },
  { name: 'jjj', isChecked: false, sum: 56 },
  { name: 'vvv', isChecked: false, sum: 12 },
]);

const isAllChecked = computed({
  get() {
    return goodsList.every(item => item.isChecked)
  },
  set(val) {
    goodsList.forEach(item => item.isChecked = val)
  }
});

const total = computed(() => {
  return goodsList.reduce((sum, item) => sum + (item.isChecked ? item.sum : 0), 0);
});
</script>
http://www.dtcms.com/a/74908.html

相关文章:

  • 【leetcode hot 100 105】从前序与中序遍历序列构造二叉树
  • 【从零开始】Air780EPM的LuatOS二次开发——OneWire协议调试注意事项!
  • C++之list类及模拟实现
  • 《C#上位机开发从门外到门内》3-5:基于FastAPI的Web上位机系统
  • 【NLP】 1. 文本在计算机里的表示: One-Hot, sparse vector, bag of words
  • MCU的应用场景:从智能家居到工业控制
  • 【Go】无法访问 proxy.golang.org 进行依赖下载
  • spring bean的生命周期和循环依赖
  • 量子信息理论入门:探索量子世界的奇妙信息处理方式
  • .gitignore 文件用于 Git 应忽略的文件夹的格式
  • 详细讲一下 Webpack 主要生命周期钩子流程(重难点)
  • SpringBoot美发门店管理系统开发与设计
  • 网页制作18-Javascipt图像特效の图片闪烁
  • MySQL 横向衍生表(Lateral Derived Tables)
  • element ui设置结束时间为23:59:59
  • VSTO(C#)Excel开发12:多线程的诡异
  • DLMS电能表通讯协议学习笔记
  • 蓝桥杯 第五天 2021 国赛 第 5 题 最小权值
  • Secs/Gem第一讲 · 总结精华版(基于secs4net项目的ChatGpt介绍)
  • 芯谷D6211B:IP摄像头IR滤波器开关驱动的理想选择
  • c++ 中的可变参数模板与折叠表达式
  • 简述下npm,cnpm,yarn和pnpm的区别,以及跟在后面的-g,--save, --save-dev代表着什么
  • 学习网络层
  • python unity通讯数据解析2
  • STAR Decomposition 一种针对极端事件的信号分解方法 论文精读加复现
  • 3.17学习总结
  • 【项目合集】智能语音小车-微信小程序控制
  • WebView2 nuget不能安装到unity项目中
  • 中间件 - 1.nats
  • Matlab GPU加速技术