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

5.vue学习笔记(数组变化的侦测+计算属性+Class绑定)

文章目录

        • 1.数组变化的侦测
          • 1.1.变更方法
          • 1.2.替换一个数组
        • 2.计算属性
          • 计算属性缓存vs方法
        • 3.Class绑定
          • 3.1.绑定对象
          • 3.2.多个对象的绑定形式
          • 3.3.绑定数组
          • 3.4.数组与对象

1.数组变化的侦测
1.1.变更方法
vue能够侦听响应式数组的变更方法,并在它们被调用时出发相关的更新。这些变更方法包括:
push()		
pop()		
shift()		
unshift()	
splice()	
sort()		
reverse()	

在这里插入图片描述

1.2.替换一个数组
变更方法,就是会对调用它们的原数组进行变更。相对的,也有一些不可变的方法,例如:
filter()	concat()	slice()
这些不会更改原数组,而总是返回一个新数组,当遇到的是非变更方法时,我们需要将旧的数组替换为新的

在这里插入图片描述

//重新赋值后产生变换
this.names = this.names.concat("Brook");
<template><h3>数组变化侦听</h3><button @click="addListHandle">添加数据</button><ul><li v-for="(name,index) of names" :key="index">{{ name }}</li></ul><button @click="concatHandle">合并数组</button><h3>数组1</h3><p v-for="(num,index) of num1" :key="index">{{ num }}</p><h3>数组2</h3><p v-for="(num,index) of num2" :key="index">{{ num }}</p></template><script>export default {data(){return{names: ["Tom","Bob","Lisa"],num1: [1,2,3,4,5],num2: [6,7,8,9,10]}},methods:{addListHandle(){//引起UI自动更新//this.names.push("Brook");//不会引起UI自动更新// this.names.concat("Brook");// console.log(this.names.concat("Brook"));//重新赋值后产生变换this.names = this.names.concat("Brook");},concatHandle(){this.num1 = this.num1.concat(this.num2);}}
}
</script>
2.计算属性
模板中的表达式虽然方便,但也只能用来做简单的操作,如果在模板中写太多的逻辑,会让模板变得臃肿,难以维护。
因此我们推荐使用计算属性来描述依赖响应式状态的复杂逻辑
<template><h3>{{ person.name }}</h3><p>{{ person.content.length > 0 ? "yes" : "no" }}</p>
</template><script>export default {data(){return {person:{name: "张三",content: ["软件工程","Java","互联网与应用技术"]}}}
}
</script>改造后<template><h3>{{ person.name }}</h3><p>{{ personContent }}</p><p>{{ personContent1() }}</p>
</template><script>export default {data(){return {person:{name: "张三",content: ["软件工程","Java","互联网与应用技术"]}}},//计算属性computed:{personContent(){return this.person.content.length > 0 ? "yes" : "no"}},//放函数或者方法methods:{personContent1(){return this.person.content.length > 0 ? "yes" : "no"} }
}
</script>
计算属性缓存vs方法
以上代码可以看出,计算属性和方法都能实现,那么为什么要使用计算属性:
计算属性:计算属性值会基于其响应式依赖被缓存。一个计算属性仅会在其响应式依赖更新时才会重新计算
(只要代码不变,只执行一次,多次调用的值也只执行一次)
方法:方法调用总是会在重渲染发生时再次执行函数
(方法调用几次,执行几次)
3.Class绑定
数据绑定的一个常见需求场景是操纵元素的 CSS class列表,因为class是attribute,我们可以和其他attribute一样使用v-bind将它们和动态字符串绑定。
但是,在处理比较复杂的绑定时,通过拼接生成字符串是麻烦且容易出错的。
因此,Vue专门为class的v-bind用法提供了特殊的功能增强。除了字符串外,表达式的值也可以是对象或数组
<template><h3>Class样式</h3><p :class="myClass">Class样式绑定</p>
</template><script>export default {data(){return{myClass: "Demo"}}
}    
</script>
3.1.绑定对象
<template><h3>Class样式</h3><p :class="{ 'active':isActive,'text-danger':hasError }">Class样式绑定</p>
</template><script>export default {data(){return{isActive: true,hasError: true}}
}    
</script><style>
.active{font-size: 30px;
}
.text-danger{color:red;
}</style>
3.2.多个对象的绑定形式
<template><h3>Class样式</h3><p :class="ClassObject">Class样式绑定</p>
</template><script>export default {data(){return{ClassObject:{active: true,'text-danger': true}}}
}    
</script><style>
.active{font-size: 30px;
}
.text-danger{color:red;
}</style>
3.3.绑定数组
<template><h3>Class样式</h3><p :class="[arrActive,arrTextDanger]">Class样式绑定3</p>
</template><script>export default {data(){return{arrActive: 'active',arrTextDanger: 'text-danger'}}
}    
</script><style>
.active{font-size: 30px;
}
.text-danger{color:red;
}</style>
如果想在数组中有条件地渲染某个class,也可以使用三元运算符
<template><h3>Class样式</h3><p :class="[isActive ? 'active' : '']">Class样式绑定4</p>
</template><script>export default {data(){return{isActive: true}}
}    
</script><style>
.active{font-size: 30px;
}
.text-danger{color:red;
}</style>
3.4.数组与对象
数组和对象嵌套过程中,只能是数组嵌套对象。[{},{}]
<template><h3>Class样式</h3><p :class="[{'active':isActive},arrTextDanger]">Class样式绑定5</p><p :class="[isActive ? 'active' : '',{'text-danger':hasError}]">Class样式绑定6</p>
</template><script>export default {data(){return{isActive: true,hasError: true,arrActive: 'active',arrTextDanger: 'text-danger'}}
}    
</script><style>
.active{font-size: 30px;
}
.text-danger{color:red;
}</style>

相关文章:

5.vue学习笔记(数组变化的侦测+计算属性+Class绑定)

文章目录 1.数组变化的侦测1.1.变更方法1.2.替换一个数组 2.计算属性计算属性缓存vs方法 3.Class绑定3.1.绑定对象3.2.多个对象的绑定形式3.3.绑定数组3.4.数组与对象 1.数组变化的侦测 1.1.变更方法 vue能够侦听响应式数组的变更方法&#xff0c;并在它们被调用时出发相关的…...

Java十种经典排序算法详解与应用

数组的排序 前言 排序概念 排序是将一组数据&#xff0c;依据指定的顺序进行排列的过程。 排序是算法中的一部分&#xff0c;也叫排序算法。算法处理数据&#xff0c;而数据的处理最好是要找到他们的规律&#xff0c;这个规律中有很大一部分就是要进行排序&#xff0c;所以需…...

git常用命令及概念对比

查看日志 git config --list 查看git的配置 git status 查看暂存区和工作区的变化内容&#xff08;查看工作区和暂存区有哪些修改&#xff09; git log 查看当前分支的commit 记录 git log -p commitID详细查看commitID的具体内容 git log -L :funcName:fileName 查看file…...

57、python 环境搭建[for 计算机视觉从入门到调优项目]

从本节开始,进入到代码实战部分,在开始之前,先简单进行一下说明。 代码实战部分,我会默认大家有一定的编程基础,不需要对编程很精通,但是至少要会 python 的基础语法、python 环境搭建、pip 的使用;C++ 要熟悉基础知识和基础语法,会根据文章中的步骤完成 C++ 的环境搭…...

K8S-应用访问

1 service对象定位 2 Service 实践 手工创建Service 根据应用部署资源对象&#xff0c;创建SVC对象 kubectl expose deployment nginx --port80 --typeNodePortyaml方式创建Service nginx-web的service资源清单文件 apiVersion: v1 kind: Service metadata:name: sswang-ngi…...

商智C店H5性能优化实战

前言 商智C店&#xff0c;是依托移动低码能力搭建的一个应用&#xff0c;产品面向B端商家。随着应用体量持续增大&#xff0c;考虑产品定位及用户体验&#xff0c;我们针对性能较差页面做了一次优化&#xff0c;并取得了不错的效果&#xff0c;用户体验值&#xff08;UEI&…...

Unity 使用 Plastic 同步后,正常工程出现错误

class Newtonsoft.Json.Linq.JToken e CS0433:类型"JToken"同时存在于"Newtonsoft.Json.Net20,Version3.5.0.0,Cultureneutral,,PublicKeyToken30ad4fe6b2a6aeed"和"Newtonsoft.Json, Version12.0.0.0,Cultureneutral,PublicKeyToken30ad4fe6b2a6aeed…...

详细设计文档该怎么写

详细设计文档是软件开发过程中的一个关键阶段&#xff0c;它为每个软件模块的实现提供了详细说明。这份文档通常在概要设计阶段之后编写&#xff0c;目的是指导开发人员如何具体实现软件的功能。以下是撰写详细设计文档的步骤和一些示例&#xff1a; 步骤和组成部分 引言 目的…...

集团企业OA办公协同平台建设方案

一、企业对协同应用的需求分析 实现OA最核心、最基础的应用 业务流转&#xff1a;收/发文、汇报、合同等各种审批事项的业务协作与办理 信息共享&#xff1a;规章制度、业务资料、共享信息资源集中存储、统一管理 沟通管理&#xff1a;电子邮件、手机短信、通讯录、会议协作等…...

Spring Security之认证

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 Spring Security之认证 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、什么是Spring…...

智能语音机器人NXCallbot

受出海公司业务全球化的影响&#xff0c;智能客服逐渐从便捷应用变为市场刚需。新基建七大领域中&#xff0c;人工智能及场景应用的基础建设是最核心的领域&#xff0c;而智能客服作为商业化实际应用的核心场景之一&#xff0c;能提升企业运营效率&#xff0c;为行业客户赋能。…...

Vue 3中toRaw和markRaw的使用

Vue 3的响应性系统 在Vue 3中&#xff0c;响应性系统是构建动态Web应用程序的关键部分。Vue使用响应性系统来跟踪依赖关系&#xff0c;使数据更改能够自动更新视图。这使得Vue应用程序在数据变化时能够高效地更新DOM。Vue 3引入了新的Proxy对象来替代Vue 2中的Object.definePro…...

移动神器RAX3000M路由器不刷固件变身家庭云之三:外网访问家庭云

本系列文章&#xff1a; 移动神器RAX3000M路由器变身家庭云之一&#xff1a;开通SSH&#xff0c;安装新软件包 移动神器RAX3000M路由器变身家庭云之二&#xff1a;安装vsftpd 移动神器RAX3000M路由器变身家庭云之三&#xff1a;外网访问家庭云 移动神器RAX3000M路由器变身家庭云…...

基于多反应堆的高并发服务器【C/C++/Reactor】(中)线程池的启动和从线程池中取出一个反应堆实例

一、线程池的启动 &#xff08;主线程&#xff09; // 启动线程池 &#xff08;主线程&#xff09; void threadPoolRun(struct ThreadPool* pool) {/*线程池被创建出来之后&#xff0c;接下来就需要让线程池运行起来&#xff0c;其实就是让线程池里的若干个子线程运行起来*//…...

go语言gin框架的基本使用

1.首先在linux环境上安装go环境&#xff0c;这个网上搜搜就行 2.初始化一个go mod&#xff0c;网上搜搜怎么初始化 3.下面go代码的网址和端口绑定自己本机的就行 4.与另一篇CSDN一起食用&#xff0c;效果更好哟---> libcurl的get、post的使用-CSDN博客 package mainimpo…...

TypeScript 从入门到进阶之基础篇(六) 类型(断言 、推论、别名)| 联合类型 | 交叉类型

系列文章目录 TypeScript 从入门到进阶系列 TypeScript 从入门到进阶之基础篇(一) ts基础类型篇TypeScript 从入门到进阶之基础篇(二) ts进阶类型篇TypeScript 从入门到进阶之基础篇(三) 元组类型篇TypeScript 从入门到进阶之基础篇(四) symbol类型篇TypeScript 从入门到进阶…...

Linux操作系统基础(14):文件管理-文件属性命令

1. 查看文件属性 stat命令用于显示文件的详细信息&#xff0c;包括文件的权限、所有者、大小、修改时间等。 #1.显示文件信息 stat file.txt#2.显示文件系统状态 stat -f file.txt#3.显示以时间戳的形式文件信息 stat -t file.txt2. 修改文件时间戳 touch命令用于创建新的空…...

metaSPAdes,megahit,IDBA-UB:宏基因组装软件安装与使用

metaSPAdes,megahit,IDBA-UB是目前比较主流的宏基因组组装软件 metaSPAdes安装 GitHub - ablab/spades: SPAdes Genome Assembler #3.15.5的预编译版貌似有问题&#xff0c;使用源码安装试试 wget http://cab.spbu.ru/files/release3.15.5/SPAdes-3.15.5.tar.gz tar -xzf SP…...

Apache、MySQL、PHP编译安装LAMP环境

1. 请简要介绍一下LAMP环境。 LAMP环境是一个在Linux操作系统上搭建的服务器环境组合&#xff0c;由Apache、MySQL、PHP三种软件构成。这种环境是开源的&#xff0c;跨平台的&#xff0c;并且由于各组件经常一起使用&#xff0c;因此具有高度的兼容性。 其中&#xff0c;Apac…...

L1-087:机工士姆斯塔迪奥

题目描述 在 MMORPG《最终幻想14》的副本“乐欲之所瓯博讷修道院”里&#xff0c;BOSS 机工士姆斯塔迪奥将会接受玩家的挑战。 你需要处理这个副本其中的一个机制&#xff1a;NM 大小的地图被拆分为了 NM 个 11 的格子&#xff0c;BOSS 会选择若干行或/及若干列释放技能&#x…...

如何做一个炫酷的Github个人简介(3DContribution)

文章目录 前言3D-Contrib第一步第二步第三步第四步第五步第六步 前言 最近放假了&#xff0c;毕设目前也不太想做&#xff0c;先搞一点小玩意玩玩&#xff0c;让自己的github看起来好看点。也顺便学学这个action是怎么个事。 3D-Contrib 先给大家看一下效果 我的个人主页&am…...

基于单片机的护理床控制器设计

一、摘要 随着科技的不断发展&#xff0c;人们对生活质量的要求越来越高&#xff0c;特别是在医疗保健领域。护理床作为医院病房中常见的设备&#xff0c;其功能和性能直接影响到患者的康复进程。本文主要介绍了一种基于单片机的护理床控制器设计&#xff0c;该控制器可以实现…...

《3D数学基础-图形和游戏开发》阅读笔记 | 3D数学基础 (学习中 1.6更新)

文章目录 3D数学基础矢量/向量什么是向量点与矢量的关系 向量基础运算 向量加法向量基础运算 数乘 线性组合 - 坐标系的基如果选择不同的基向量会怎么样&#xff1f;- 张成(Span)的空间三维向量的张成空间线性相关与线性相关 矩阵与线性变换矩阵-几何意义线性变换矩阵乘法与线性…...

解锁测试性能瓶颈:深度探讨JMeter分布式性能测试!

在做后端服务器性能测试中&#xff0c;我们会经常听到分布式。但你是否了解分布式呢&#xff1f;今天&#xff0c;我们就来给大家讲讲&#xff0c;在企业实战中&#xff0c;如何使用分布式进行性能测试&#xff0c;实战过程中&#xff0c;又有哪些地方要特别注意&#xff1f; 0…...

SiC电机控制器(逆变器)发展概况及技术方向

SiC电机控制器&#xff08;逆变器&#xff09;发展概况及技术方向 1.概述2.电动汽车动力系统设计趋势3.栅极驱动器和驱动电源配置4.结论 tips&#xff1a;资料来自网上搜集&#xff0c;仅供学习使用。 1.概述 2022年到2023年&#xff0c;第三代半导体碳化硅被推上了新的热潮。…...

useContext

可以跨组件传值 其实主要的就是三步 1、const xxx React.createContext();创建一个context 2、<xxx.Provider value{{ num, setNum }}>父组件设置要传递的值 3、const { num, setNum } React.useContext(xxx);子组件下使用 特点&#xff1a; 1、可以有多个xxx.Pr…...

Java数据结构:1. 数据结构前置知识

文章目录 一、初识数据结构二、初识集合框架1. 什么是集合框架2. 集合框架的重要性3. 背后所涉及的数据结构以及算法 三、时间复杂度空间复杂度1. 算法效率2. 时间复杂度&#xff08;1&#xff09;概念&#xff08;2&#xff09;大O的渐进表示法&#xff08;3&#xff09;推导大…...

Vue中使用Element UI的Table组件实现嵌套表格(最简单示例)

以下是一个简单的示例代码&#xff0c;演示如何在Vue中使用Element UI的Table组件实现嵌套表格&#xff1a; html <template><div><el-table :data"tableData" style"width: 100%"><el-table-column prop"name" label&quo…...

如何使用RESTful API构建 web 应用程序

RESTful API 是一种设计风格&#xff0c;用于构建可扩展、灵活和可维护的 web 应用程序。它是一种基于 HTTP 协议的架构风格&#xff0c;旨在提供一组规范和约束&#xff0c;以便客户端和服务器之间的通信更加简单和可预测。 RESTful API 通过使用 HTTP 动词来定义资源的操作&…...

开启Android学习之旅-4-Android集成FontAwesome

FontAwesome 是一个非常标准、统一风格的图标库。产品经理在原型中应用了很多图标都是FontAwesome。正常流程是 UI 需要再手工绘制或在 iconfont 或 iconpark 网站挨个找&#xff0c;如果在 Android 直接使用不是省了一步&#xff08;注意版权问题&#xff0c;使用免费版&#…...

深圳便宜网站建设/青岛seo杭州厂商

干互联网这一行&#xff0c;你得保持终身学习的习惯&#xff0c;不断开拓视野&#xff0c;提升自我格局&#xff0c;比如一些优质公众号就是一个很不错的学习来源&#xff0c;我从关注的近千个公众号中挑选了一些优质原创技术号&#xff0c;推荐给大家。这些号一般是由深耕技术…...

wordpress如何看访问/唐山seo

1&#xff0c;把操作hive的sql写在sh脚本里&#xff0c;用 bin/hive -f 执行脚本&#xff0c;不用登陆hive命令行界面&#xff0c;这样可以脚本自动化执行某些任务 2&#xff0c;expect脚本 先安装expect插件 yum -y install expect#!/bin/expect spawn beeline set timeo…...

wordpress 日本主题/什么是互联网销售

很多时候在开发网页前端的时候&#xff0c;为了让网页上面的东西看起来更加的舒服&#xff0c;我们可能需要设置一些圆角的效果&#xff0c;比如圆形的头像、圆角的 按钮等等。那么这些圆角效果是如何用css样式实现的&#xff1f;css3圆角怎么做&#xff1f;在CSS3中&#xff0…...

重庆建设网站首页/最好看免费观看高清视频了

1. MySQL中的函数 <1>加密函数 password(str)该函数可以对字符串str进行加密&#xff0c;一般情况下&#xff0c;此函数给用户密码加密。select PASSWORD(tlxy666); md5(str)对字符串str进行散列加密&#xff0c;可用户对于一些普通的不需要进行解密的数据进行加密。 <…...

网站域名可以做端口映射吗/seo入门

1 inverse&#xff0c;在一对多中使用&#xff0c;表示是否有关联关系控制权。对于保存、删除数据有影响。 2 cascade&#xff0c;表示级联操作 save-update 表示级联保存和更新 delete 表示级联删除 all 表示级联保存、更新、删除 3 一级缓存&#xff0c;session缓存又称一级缓…...

wordpress rt19/百度有哪些app产品

【IT168 技术文章】线程化和同步是 Java 编程语言的核心特性&#xff0c;Java 语言规范(JLS)中对二者作出了描述。RTSJ 用多种方式扩展了 JLS 的核心功能。例如&#xff0c;RTSJ 引入了一些新的实时(RT)线程类型&#xff0c;它们必须遵守比普通 Java 线程更加严格的调度策略。另…...