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检测数据变化:

相关推荐
jktantan2 小时前
Vue keep-alive 切标签后滚动位置回顶?因为 onDeactivated 里读到的 scrollTop 是 0
前端·javascript·vue.js
总要学点什么3 小时前
第89篇:三维特效-螺旋圆效果——让螺旋臂卷起一圈圈外扩的涟漪
开发语言·javascript·ecmascript·webgl·cesium·空间分析·1024程序员节
只睡四小时3 小时前
MCP 弃用 SSE?Node 分帧漏 81.7% 事件
node.js·webassembly·实时通信·mcp·streamable http
2601_962885723 小时前
quotes 字段全解:涨跌幅、振幅、换手率的口径与单位
java·前端·spring
excel4 小时前
encodeURI 和 encodeURIComponent 有什么区别?
前端
前端精髓4 小时前
调用openrouter的免费API模型
java·前端·javascript
赛博守夜人4 小时前
AI安全攻防与治理之十四:AI 安全测试不能脱离传统安全,Web、API、移动端与模型攻击面的组合拳
前端·人工智能·安全
开开心心_Every4 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
networknomad4 小时前
OpenReplay:自己搭的会话回放工具,给前端排错用的
前端·其他
缓慢更新5 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能