vue3-computed计算属性!!!

1.计算属性具有缓存特性,在computed中的响应式数据不发生变化时,就不重新加载computed中的逻辑。(作用于大量耗时的逻辑解构,并为其数据不经常发生变化,可采取computed计算属性提高程序效率-->常用于购物车数据计算)

代码如下:

html 复制代码
<script>
import { computed, ref } from "vue";
export default {
  setup() {
    const people = ref(["你是好人", "你不是好人"]);
    const config = ref(true);
    console.log(people);
    const num = ref(0);
    const shop = ref([
      { id: 1, name: "苹果", price: 3, num: 2 },
      { id: 2, name: "香蕉", price: 4, num: 1 },
    ]);
    const totalPrice = computed(() => {
      let prices = 0;
      shop.value.forEach((item) => {
        prices += item.price * item.num;
      });
      console.log("用来检测响应式数据的变化");
      return prices;
    });
    return {
      people,
      config,
      totalPrice,
      shop,
      num,
    };
  },
};
</script>
<template>
    <option value="苹果">苹果</option>
    <option value="香蕉">香蕉</option>
    <option value="橘子">橘子</option>
  </select>
  <h2>你选择的水果是:{{ fruit }}</h2> -->
  <!-- <h2 v-show="people">{{ people }}</h2> -->

  <button @click="config = config ? !config : !config">点击切换人设</button>
  <p v-show="config">{{ people[0] }}</p>

  <p v-if="config">{{ people[0] }}</p>
  <p v-else>{{ people[1] }}</p>

  <div v-for="item in shop" :key="item.id">
    <p>商品:{{ item.name }}</p>
    <p
      @click="
        () => {
          const goods = shop.find((obj) => obj.title == item.title);
          goods.price++;
        }
      "
    >
      {{ item.price }}元/斤
    </p>
    <p
      @click="
        () => {
          const goods = shop.find((obj) => obj.title == item.title);
          goods.num++;
        }
      "
    >
      {{ item.num }}个
    </p>
  </div>
  <p>总价: {{ totalPrice }}</p>
  <P>{{ num }}</P>
  <button @click="num++">num++</button>
</template>

通过F12检测数据变化:

相关推荐
2603_955279705 小时前
C++23新特性在CLion中的实战体验
前端·javascript·c++23
梨子同志5 小时前
HTTP
前端
kidding7235 小时前
旋转大转盘小程序
前端·css·微信小程序·小程序·前端框架
道友可好5 小时前
Claude Code 泄露源码里的 89 个秘密
前端·人工智能·后端
Tian_Hang5 小时前
Eclipse Ditto 的权限策略
java·服务器·前端·网络·ide·ubuntu·eclipse
叩码以求索6 小时前
经典算法实例分析:写字符串需要的行数
开发语言·javascript·ecmascript
lichenyang4536 小时前
从 0 新增一个 `has.echo`:我如何理解小程序容器里的 API 调用链路
前端
leptune7 小时前
Mac 使用 Microsoft Word 批量将 DOCX 转 PDF(保持原排版)
前端
大龄秃头程序员7 小时前
Flutter 长列表 1 万条滑动卡顿治理:Baseline vs Optimized 可跑 Demo
前端
yingyima7 小时前
Git 核心命令速查:掌握底层原理与实战技巧
前端