【前端】vue监视属性和计算属性对比
首先分开讲解各个属性的作用。
1.计算属性
作用:用来计算出来一个值,这个值调用的时候不需要加括号,会根据依赖进行缓存,依赖不变,computed的值不会重新计算。
const vm = new Vue({el:'#root',data:{lastName:'张',firstName:'三',},computed:{fullName:{//get作用,读取fullName时get调用且返回值是fullName的值get(){return this.lastName.slice(0,3)+'-'+this.firstName.slice(0,3);},//当fullName被修改时,会调用setset(value){const arr = value.split('-');this.lastName = arr[0];this.firstName = arr[1];}}}})
其中computed的属性就是计算属性,其中get读取方法尽在初次读取的时候调用以及所依赖的数据发生变化的时候调用。set设置方法是当数据发生变化时就会直接调用去重新计算属性值。

2.监听属性
作用:和js中的事件监听类似,当vue中的属性值发生变化时执行。
const vm = new Vue({el:'#root',data:{ishot:true,numbers:{a:1,b:1}},methods:{change(){//this.ishot = (this.ishot==true)?false:truethis.ishot = !this.ishot},},computed:{info(){return this.ishot?'炎热':'凉爽'}},watch:{ishot:{immediate:true, //初始化时让handler调用一下//handler什么时候调用?当isHot发生改变时。handler(newValue,oldValue){console.log("ishot被改变了:",newValue,'->',oldValue)}},//监视多级结构中某个属性的变化'numbers.a':{immediate:true, //初始化时让handler调用一下//handler什么时候调用?当isHot发生改变时。handler(newValue,oldValue){console.log("a被改变了:",newValue,'->',oldValue)}},//监视多级结构中所有属性的变化numbers:{deep:true, //开启深度监视handler(){console.log('numbers改变了');}}}})
上述代码中watch属性就是计算属性,它包含两个属性值,其中immediate属性记录的是,在初始化 的时候是否需要计算一次监视属性;还有一个deep属性值代表的是当所要监视的属性值是对象是,是否要进行深度监视,即当对象内部属性值发生变化时是否调用监视函数。

案例:列表过滤
问题描述搜索框,对列表中的数据进行模糊筛选。

在这个问题里面,列表会根据input框中的内容对列表中的名字内容进行筛选。
因为要显示的内容跟data中的列表不一样,所以一定是需要重新建一个参数的,因此就需要初始化。例如监听属性中immediate属性。

html:<div id="root"><h2>人员列表</h2><input type="text" placeholder="请输入名字" v-model="keyWord"><ul><!-- 动态绑定id标识 --><li v-for="(person,index) in filteredPersons" :key="person.id">{{person.name}}-{{person.age}}-{{person.sex}}</li></ul></div>
监视属性写法:js:new Vue({el:'#root',data:{keyWord:'',persons:[{id:'001',name:'马冬梅',age:19,sex:'女'},{id:'002',name:'周冬雨',age:20,sex:'女'},{id:'003',name:'周杰伦',age:21,sex:'男'},{id:'004',name:'温兆伦',age:22,sex:'男'}],filteredPersons:[]},watch:{//这里接收输出的值可以有两个,分别是新值和旧值;也可以只有一个新值keyWord:{immediate:true,handler(newValue){this.filteredPersons = this.persons.filter((p)=>{return p.name.indexOf(newValue)>=0;})}}}})
计算属性写法:js:new Vue({el:'#root',data:{keyWord:'',persons:[{id:'001',name:'马冬梅',age:19,sex:'女'},{id:'002',name:'周冬雨',age:20,sex:'女'},{id:'003',name:'周杰伦',age:21,sex:'男'},{id:'004',name:'温兆伦',age:22,sex:'男'}]}, computed:{filteredPersons:{get(){var filteredPersons = [];for(var i in this.persons){if(this.persons[i].name.indexOf(this.keyWord)>=0){filteredPersons.push(this.persons[i]);}} return filteredPersons; },set(value){this.keyWord = value;}}}})
相关文章:
【前端】vue监视属性和计算属性对比
首先分开讲解各个属性的作用。 1.计算属性 作用:用来计算出来一个值,这个值调用的时候不需要加括号,会根据依赖进行缓存,依赖不变,computed的值不会重新计算。 const vm new Vue({el:#root,data:{lastName:张,firstNa…...
探索提示工程 Prompt Engineering的奥妙
一、探索提示工程 Prompt Engineering 1. 介绍通用人工智能和专用人工智能 人工智能(AI)可以分为通用人工智能(AGI)和专用人工智能(Narrow AI)。AGI是一种能够理解、学习和执行任何人类可以完成的任务的智…...
算法阶段总结1
阶段总结 通过今天晚上的这场div2我深刻的意识到,光是会找窍门是远远不够的,你得会基础的建图,dp,高级数据结构,你这样才可以不断的提升自己,不可以一直在一个阶段停留下去,构造题可以刷下去&a…...
前端宝典之七:React性能优化实战精华篇
本文主要讲解实战项目中React性能优化的方法,主要分为三个大的方面:减少不必要的组件更新、组件优化以及tree-shaking,共11个方法 一、减少不必要组件更新 以下是一些可以避免在 React 提交阶段进行不必要重新渲染的方法: 1、使…...
【Dash】feffery_antd_components 简单入门示例
一、简单了解 feffery_antd_components 简称 fac ,是一个基于 Ant Design 的 Dash 第三方组件,由Feffery 老师开源维护的 Python 网页开发组件库,它具有丰富的页面常用交互组件功能,使开发者可以使用纯Python的方式快速构建现代…...
JAVA学习-练习试用Java实现“路径交叉”
问题: 给定一个整数数组 distance 。从 X-Y 平面上的点 (0,0) 开始,先向北移动 distance[0] 米,然后向西移动 distance[1] 米,向南移动 distance[2] 米,向东移动 distance[3] 米,持续移动。也就是说&#…...
element组件封装
1.上传组件 <!--文件上传组件--> <template><div class"upload-file"><el-uploadref"fileUpload"v-if"props.type default":action"baseURL other.adaptationUrl(props.uploadFileUrl)":before-upload"h…...
Mysql (面试篇)
目录 唯一索引比普通索引快吗 MySQL由哪些部分组成,分别用来做什么 MySQL查询缓存有什么弊端,应该什么情况下使用,8.0版本对查询缓存由上面变更 MyISAM和InnoDB的区别有哪些 MySQL怎么恢复半个月前的数据 MySQL事务的隔离级别ÿ…...
【python】深入探讨python中的抽象类,创建、实现方法以及应用实战
✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…...
微前端传值
在微前端架构中,不同子应用之间通过 postMessage 进行通信是一种常见的做法。这种方式允许不同源的窗口之间进行安全的信息交换。 下面是如何使用 postMessage 在微前端环境中发送和接收消息的示例。 步骤 1: 发送消息 假设您有一个主应用(host app&a…...
《学会 SpringBoot · 依赖管理机制》
📢 大家好,我是 【战神刘玉栋】,有10多年的研发经验,致力于前后端技术栈的知识沉淀和传播。 💗 🌻 CSDN入驻不久,希望大家多多支持,后续会继续提升文章质量,绝不滥竽充数…...
全网行为管理软件有哪些?5款总有一款适合你的企业!
如今企业越来越依赖互联网进行日常运营和业务发展,网络行为管理变得日益重要。 为了确保网络安全、提高员工工作效率、避免敏感信息外泄等问题,企业往往需要借助全网行为管理软件来监控和管理内部网络的使用情况。 本文将为您介绍五款热门的全网行为管理…...
以简单的例子从头开始建spring boot web多模块项目(二)-mybatis简单集成
继续使用以简单的例子从头开始建spring boot web多模块项目(一)中的项目进行mybatis集成。 1、pom.xml文件中,增加相关的依赖包的引入,分别是mybatis-spring-boot-starter、lombok、mysql-connector-java 如下: <d…...
Golang | Leetcode Golang题解之第354题俄罗斯套娃信封问题
题目: 题解: func maxEnvelopes(envelopes [][]int) int {n : len(envelopes)if n 0 {return 0}sort.Slice(envelopes, func(i, j int) bool {a, b : envelopes[i], envelopes[j]return a[0] < b[0] || a[0] b[0] && a[1] > b[1]})f : …...
jmeter中添加ip欺骗
1、首先在本机电脑中通过配置文件创建添加ip的配置文件,先创建一个txt格式的,直接修改文件名以及后缀为ips.bat 2、编辑该ips.bat文件,在文件中输入如下内容,用于快速给本机添加ip地址,(2,1&…...
WPF篇(19)-TabControl控件+TreeView树控件
TabControl控件 TabControl表示包含多个共享相同的空间在屏幕上的项的控件。它也是继承于Selector基类,所以TabControl也只支持单选操作。另外,TabControl的元素只能是TabItem,这个TabItem继承于HeaderedContentControl类,所以Ta…...
appium下载及安装
下载地址:https://github.com/appium/appium-desktop/releases 双击安装就可以...
XSS项目实战
目录 一、项目来源 二、实战操作 EASY 1 2 3 4 5 6 7 8 一、项目来源 XSS Game - Learning XSS Made Simple! | Created by PwnFunction 二、实战操作 EASY 1 1.Easy -1 2.题目要求及源码 Difficulty is Easy.Pop an alert(1337) on sandbox.pwnfunction.com.No …...
SD-WAN降低网络运维难度的关键技术解析
为什么说SD-WAN(软件定义广域网)大大降低了网络运维的复杂性,主要是因为它的智能路径选择、应用识别和链路质量监测这三个核心技术。这几项在SD-WAN中尤为重要的技术,它们共同作用,提升了整体网络性能,为网…...
【算法基础实验】图论-最小生成树-Prim的即时实现
理论知识 Prim算法是一种用于计算加权无向图的最小生成树(MST, Minimum Spanning Tree)的贪心算法。最小生成树是一个连通的无向图的子图,它包含所有的顶点且总权重最小。Prim算法从一个起始顶点开始,不断将权重最小的边加入生成…...
使用LingBot-Depth优化Git版本控制中的3D模型管理
使用LingBot-Depth优化Git版本控制中的3D模型管理 1. 引言 在3D设计和游戏开发领域,版本控制一直是个头疼的问题。传统的Git系统擅长处理代码和文本文件,但面对3D模型这种二进制文件就显得力不从心了。每次修改模型后,你只能看到"文件…...
GME多模态向量-Qwen2-VL-2B实操手册:日志监控、错误追踪与WebUI响应延迟分析
GME多模态向量-Qwen2-VL-2B实操手册:日志监控、错误追踪与WebUI响应延迟分析 你是不是也遇到过这种情况:部署了一个看起来很酷的AI模型服务,用起来效果不错,但一旦出问题就两眼一抹黑?日志在哪看?为什么响…...
Echarts 数据大屏实战:150套模板助力企业级可视化开发
1. 为什么企业需要Echarts数据大屏? 在数字化转型的浪潮中,数据可视化已经成为企业决策的重要工具。想象一下,当你的老板需要在3秒内了解公司当月销售情况、用户增长趋势和库存状态时,密密麻麻的Excel表格显然不是最佳选择。这时…...
Qwen3-4B-Instruct-2507问题解决:部署中常见的5个错误及快速修复方法
Qwen3-4B-Instruct-2507问题解决:部署中常见的5个错误及快速修复方法 1. 部署准备与环境检查 在开始部署Qwen3-4B-Instruct-2507模型之前,确保您的环境满足以下基本要求: 硬件配置:推荐使用NVIDIA 4090D显卡(24GB显…...
Qwen3-TTS开源镜像实操:与LangChain集成构建多语种AI Agent语音接口
Qwen3-TTS开源镜像实操:与LangChain集成构建多语种AI Agent语音接口 1. 项目概述与核心价值 Qwen3-TTS-12Hz-1.7B-VoiceDesign是一个强大的多语言文本转语音模型,专为现代AI应用场景设计。这个模型最大的特点是能够处理10种主要语言,包括中…...
前端HTML精讲01:别再乱 div 一把抓,吃透语义化标签才是进阶第一步
前端HTML精讲01:别再乱 div 一把抓,吃透语义化标签才是进阶第一步 文章目录前端HTML精讲01:别再乱 div 一把抓,吃透语义化标签才是进阶第一步一、什么是HTML语义化?二、为什么要做HTML语义化?1\. 提升代码可…...
生信分析效率翻倍:fastp多线程+UMI处理技巧全解析(含实战案例)
生信分析效率翻倍:fastp多线程UMI处理技巧全解析(含实战案例) 在肿瘤基因检测和ctDNA测序领域,数据预处理环节往往成为整个分析流程的瓶颈。传统工具在处理海量测序数据时,不仅耗时长达数小时,还经常面临内…...
Qwen3.5-4B-Claude-Opus-GGUF保姆级教程:从零启动Web问答服务全流程
Qwen3.5-4B-Claude-Opus-GGUF保姆级教程:从零启动Web问答服务全流程 1. 模型与平台介绍 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是一个基于Qwen3.5-4B的推理蒸馏模型,特别强化了结构化分析、分步骤回答以及代码与逻辑类问题的处理能力。…...
OpenClaw配置优化:提升GLM-4.7-Flash响应速度的3个技巧
OpenClaw配置优化:提升GLM-4.7-Flash响应速度的3个技巧 1. 为什么需要优化GLM-4.7-Flash的响应速度 上个月我在本地部署了OpenClaw对接GLM-4.7-Flash模型,最初的使用体验并不理想。一个简单的文件整理任务需要等待近20秒才能开始执行,而复杂…...
游戏存档备份终极指南:用Ludusavi保护你的游戏进度永不丢失
游戏存档备份终极指南:用Ludusavi保护你的游戏进度永不丢失 【免费下载链接】ludusavi Backup tool for PC game saves 项目地址: https://gitcode.com/gh_mirrors/lu/ludusavi 你是否曾因电脑重装、系统崩溃或更换设备而丢失数百小时的游戏进度?…...
