Day4||vue-计算属性

一.定义

概念:基于现有的数据,计算出来的新属性依赖的数据变化,自动重新计算。

语法:

  1. 声明需要放在computed的配置项中,一个计算属性对于一个函数
  2. 使用起来和普通属性一样使用{{计算属性名}}
  3. 计算属性->可以将一段求职的代码进行封装

案例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>table {border: 1px solid #000;text-align: center;width: 240px;}th,td {border: 1px solid #000;}h3 {position: relative;}</style>
</head>
<body><div id="app"><h3>礼物清单</h3><table><tr><th>名字</th><th>数量</th></tr><tr v-for="(item, index) in list" :key="item.id"><td>{{ item.name }}</td><td>{{ item.num }}个</td></tr></table><!-- 目标:统计求和,求得礼物总数 --><p>礼物总数:{{totalCount}}个</p>
</div><script src="js/vue.js"></script>
<script>const app = new Vue({el: '#app',data:{// 现有的数据list: [{ id: 1, name: '篮球', num: 1 },{ id: 2, name: '玩具', num: 2 },{ id: 3, name: '铅笔', num: 5 },]},methods:{},computed:{totalCount(){//计算属性内部函数可以直接通过this旁问道app实例let  total=this.list.reduce((sum, item) => sum + item.num, 0)return total}}})
</script>
</body>
</html>

 二.computde VS methods

computde计算属性:

作用:封装了一段对于数据的处理,求得一个结果

语法:

  1. 卸载2computde配置项中
  2. 作为属性,直接使用——>this.计算属性

缓存特性:(提升性能)

计算属性会对计算出来的结果缓存,再次使用直接读取缓存依赖项变化了,会自动重新计算 →并再次缓存

 methods方法:

作用:给实例提供一个方法,调用以处理业务逻辑

语法:

  1. 写在methods配置项中
  2. 作为方法,需要调用 ——> this.方法名() {{方法名()}}  @事件名 = "方法名"

三.计算属性的完整写法

计算属性的默认写法是简写,智能读取访问,不能修改

如果要修改——>需要计算属性的完整写法

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app">姓:<input type="text" v-model="firstName"><br>名:<input type="text" v-model="lastName"><br><p>姓名:{{fullName}}</p><button @click="chengname">修改姓名</button>
</div>
<script src="./js/vue.js"></script>
<script>const app = new Vue({el: '#app',data: {firstName:'',
lastName: ''},computed: {fullName:{//当fullName计算属性,贝获取求值时,执行get(有缓存,优先读缓存)get(){return this.firstName + this.lastName},set(value){//当fullName被修改时,执行set 方法this.firstName = value.slice(0,1)this.lastName = value.slice(1)}}},methods: {chengname(){this.fullName = '张三'}}})
</script>
</body>
</html>

四.综合案例-成绩案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><link rel="stylesheet" href="./css/index2.css" /><title>Document</title>
</head>
<body>
<div id="app" class="score-case"><div class="table"><table><thead><tr><th>编号</th><th>科目</th><th>成绩</th><th>操作</th></tr></thead><!--渲染--><tbody v-if="list.length > 0"><tr v-for="(item,index) in list" :key="item.id"><td>{{index + 1}}</td><td>{{item.subject}}</td><td :class="{red:item.score < 60}">{{item.score}}</td><!--删除--><td><a @click.prevent="del(item.id)" href="#">删除</a></td></tr></tbody><tbody v-else><tr><td colspan="5"><span class="none">暂无数据</span></td></tr></tbody><tfoot><tr><td colspan="5"><span>总分:{{totalScore}}</span><span style="margin-left: 50px">平均分:{{averScore}}</span></td></tr></tfoot></table></div><!--添加--><div class="form"><div class="form-item"><div class="label" >科目:</div><div class="input"><inputtype="text"placeholder="请输入科目"v-model.trim="subject"/></div></div><div class="form-item"><div class="label">分数:</div><div class="input"><inputtype="text"placeholder="请输入分数"v-model.number="score"/></div></div><div class="form-item"><div class="label"></div><div class="input"><button class="submit" @click="add()">添加</button></div></div></div>
</div>
<script src="./js/vue.js"></script><script>const app = new Vue({el: '#app',data: {list: [{ id: 1, subject: '数学', score: 20 },{ id: 2, subject: '语文', score: 60 },{ id: 3, subject: '英语', score: 78},],subject: '',score: ''},methods:{del(id){this.list = this.list.filter(item => item.id !== id)},add(){if (!this.subject) {alert('请输入科目')return}if (typeof this.score !== 'number' ) {alert('请输入正确分数')return}this.list.unshift({id: +new Date(),subject: this.subject,score: this.score})/*清空*/this.subject = ''this.score = ''}},computed:{totalScore(){return this.list.reduce((sum,item) => sum + item.score,0)},averScore(){if(this.list.length === 0) return 0return (this.totalScore / this.list.length).toFixed(2)}}})
</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/91330.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/91330.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程算法在金融、医疗、教育、制造业等领域的落地案例

随着人工智能与大数据技术的迅猛发展&#xff0c;编程算法已从理论研究走向实际应用&#xff0c;在金融、医疗、教育、制造业等多个关键领域实现了深度落地。这些算法不仅提升了业务效率&#xff0c;还推动了行业智能化转型。本文将系统性地分析编程算法在四大核心领域的典型应…

vue npm install卡住没反应

install某个插件的时候&#xff0c;发现卡住不动&#xff0c;可以尝试以下解决方法 1.使用–verbose查看安装详情 npm install consola --verbose2.更换淘宝镜像&#xff08;一般都是淘宝镜像正式过期问题&#xff09; 查看当前镜像 npm config get registry更换淘宝镜像 第一种…

【Unity3D实例-功能-移动】角色移动-通过WSAD(CharacterController方式)

今天&#xff0c;我们就来聊聊如何在Unity中使用CharacterController组件&#xff0c;让角色能够灵活移动&#xff0c;在游戏世界里像风一样自由奔跑吧。废话不多说&#xff0c;走&#xff0c;让我们马上来一探究竟&#xff01;目录&#xff1a;1.准备模型2.动画的处理3.为角色…

AI Agent开发学习系列 - langchain之LCEL(4):Memory

Memory的添加方式 from operator import itemgetterfrom langchain.memory import ConversationBufferMemory from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder from langchain_core.runnables import RunnableLambda, RunnablePassthrough from l…

向Coze学习,我们把这些工作流也开源了

要说现在最火的工作流是什么&#xff0c;那非视频工作流莫属了。我每天也都能接到不少咨询短视频工作流的需求。 这大半年来我们团队也制作和整理了超过 100 工作流&#xff0c;其中很大一部分都是现在最火的视频工作流。 为了向Coze开源致敬&#xff0c;这次我们斑码团队也决…

Git 从零开始:完整项目上传指南

一、准备工作 1. 安装 Git Windows&#xff1a;下载安装包macOS&#xff1a;在终端运行 brew install gitLinux&#xff1a; # Ubuntu/Debian sudo apt update && sudo apt install git# CentOS/Fedora sudo yum install git2. 配置用户信息&#xff08;首次使用&am…

【AI】入门级提示词模板:适用于ChatGPT、文心一言等主流模型

入门级提示词模板&#xff1a;适用于 ChatGPT、文心一言等主流模型**在当下这个人工智能飞速发展的时代&#xff0c;ChatGPT、文心一言等主流大模型已经广泛地融入到我们的工作与生活当中。不管是创作文章、生成代码&#xff0c;还是进行数据分析、获取创意灵感&#xff0c;这些…

如何解决 undetected_chromedriver 启动慢问题

要解决 undetected_chromedriver 启动慢的问题&#xff0c;可以从以下几个方面优化配置和代码&#xff1a; 1. 指定本地 Chrome 二进制路径 避免自动搜索 Chrome 路径&#xff0c;直接指定位置&#xff1a; driver uc.Chrome(browser_executable_pathrC:\Program Files\Google…

Python 程序设计讲义(42):组合数据类型——元组类型:创建元组

Python 程序设计讲义&#xff08;42&#xff09;&#xff1a;组合数据类型——元组类型&#xff1a;创建元组 目录Python 程序设计讲义&#xff08;42&#xff09;&#xff1a;组合数据类型——元组类型&#xff1a;创建元组一、元组的特征二、创建元组1、使用圆括号&#xff0…

windows 设置 vscode 免密远程

我们可以使用 vscode ssh 进行远程编辑文件项目。也可以使用 ssh 密匙 来实现免密登录。 本人在本地windows系统有多个密匙&#xff0c;使用 D:\SPB_Data\.ssh\id_rsa_local 进行本地设备进行登录。 在 vscode ssh 配置文件中添加 IdentityFile 配置 Host 本地设备ipHostName …

ubuntu自动搭建Android平台NDK编译环境

sh setup_ndk_env.sh自动下载NDK并解压 提取Android平台工具链 验证Android工具链 设置工具链变量 export CROSS_TRIPLE=aarch64_linux_android export CROSS_ROOT=/home/ubuntu/${CROSS_TRIPLE} export ANDROID_NDK=${CROSS_ROOT} export AS=${CROSS_ROOT}/bin/llvm-as exp…

添加捕捉吸附标识(使用QT+OpenGL开发三维CAD)

捕捉吸附标识怎么画出来&#xff1f;在点吸附的时候能够展示吸附标识可以让用户更直观的看到当前捕捉点&#xff0c;从而更准确的进行设计和绘制。 效果视频见原文&#xff1a;添加捕捉吸附标识&#xff08;使用QTOpenGL开发三维CAD&#xff09; 16.Add snap label 鼠标捕捉吸…

元宇宙中的“虫洞“:技术实现、应用场景与未来挑战

一、技术定义与核心架构1.1 虫洞的元宇宙隐喻概念来源&#xff1a;虫洞在物理学中是连接不同时空的通道&#xff0c;而在元宇宙中&#xff0c;这一概念被引申为连接不同虚拟世界的跨平台协议。英伟达Omniverse平台通过USD&#xff08;通用场景描述&#xff09;实现了这一隐喻&a…

使用GIS中基于森林的分类与回归模型来估算房屋价值

“基于森林的分类与回归”&#xff0c;它可以帮助分析师有效地设计、测试和部署预测模型。 基于森林的分类与回归应用了 Leo Breiman 的随机森林算法&#xff0c;这是一种用于分类和预测的流行监督机器学习方法。该工具允许分析师轻松整合表格属性、基于距离的要素和解释栅格来…

《 java 随想录》| LeetCode链表高频考题

前言&#xff1a;这是专门针对java语言讲解的算法解析&#xff08;题目顺序大致参考《代码随想录》&#xff09;思维导图操作链表删除节点删除链表中 D 节点时&#xff0c;只需将其前驱节点 C 的 next 指针指向 D 的下一个节点 E。添加节点​先让 新节点 F 的 next 指针 指向 C…

学习嵌入式的第三十一天-数据结构-(2025.7.23)网络协议封装

今天的内容主要是网络协议以及常用工具的介绍。协议头与数据封包/拆包数据封包示例&#xff1a;MAC|IP|TCP|hello| ———————————— IP数据报IP头信息默认20字节常用网络测试工具telnetnetstatpingarpwiresharktcpdumpssh2secure crt工具安装命令sudo ufw disable sud…

STL学习(十、常用排序、拷贝、替换算法)

目录 一、常用排序算法 1.sort (1) 内置数据类型 (2)自定义数据类型 2. random_shuffle(iterator beg, iterator end) 3.merge 4.reverse 二、常用的拷贝和替换算法 1.copy(起始不如直接赋值) 2.replace 3.replace_if 4.swap 一、常用排序算法 1.sort 函数原型 s…

【Datawhale AI夏令营】科大讯飞AI大赛(大模型技术)/夏令营:让AI理解列车排期表(Task3)

我没招了jpgimport pandas as pd import requests import re import json from tqdm import tqdm from datetime import datetime, timedeltadef calculate_stop_duration(arrival_time_str, departure_time_str):"""计算列车停留时长&#xff0c;处理跨天和异常…

【前后端】node mock.js+json-server

JSON-Server 一个在前端本地运行&#xff0c;可以存储json数据的server。前端开发可以模拟服务端接口数据&#xff0c;在本地搭建一个JSON服务&#xff0c;自己产生测试数据。 使用npm全局安装json-server &#xff1a;npm install -g json-server可以通过查看版本号&#xff0…

疏老师-python训练营-Day30模块和库的导入

浙大疏锦行 知识点回顾&#xff1a; 导入官方库的三种手段导入自定义库/模块的方式导入库/模块的核心逻辑&#xff1a;找到根目录&#xff08;python解释器的目录和终端的目录不一致&#xff09; 作业&#xff1a;自己新建几个不同路径文件尝试下如何导入 一.学习知识点 DAY30 …