Vue2中的监听和计算属性的区别

一、监听Watch

监听器(Watchers)是一种机制,用于在数据发生变化时执行特定的操作。监听器允许你监视 Vue 实例中的数据变化,并在数据变化时执行自定义的逻辑。

1、支持异步操作

2、接收两个参数,第一个是最新的值,第二个是旧的值

3、监听的数据是data中声明过父组件传递过来的prop中的值,还可以监听路由$route

4、immediate:组件加载立即触发回调函数的执行(为false时,只有监听的数据变化回调函数才会执行)

5、deep:深度监听,一般用来监听对象。

二、计算属性

计算属性(Computed Properties)是一种便利的特性,允许你在 Vue 实例中声明计算属性,这些属性的值会根据依赖数据的变化而变化,同时具有缓存机制,只有在相关依赖数据发生改变时才会重新计算。

计算属性的特点:

响应式更新: 计算属性会根据它们的依赖进行响应式更新。当依赖数据发生变化时,计算属性会重新计算,并且在依赖数据没有变化时,会返回之前缓存的结果,提高了性能。

缓存机制: 计算属性具有缓存机制,只有在相关依赖数据发生改变时才会重新计算。这意味着在多次访问计算属性时,如果依赖数据没有发生改变,计算属性会直接返回之前的计算结果,而不会重新执行计算函数。

简洁易用: 计算属性的声明方式简洁明了,能够帮助你轻松地处理复杂的计算逻辑,并且能够将这些逻辑封装在属性中,使得代码更加清晰易懂。

三 、两者差别

触发方式

计算属性: 计算属性是基于依赖数据的值进行计算的,只有当依赖数据发生变化时,计算属性才会重新计算。计算属性会自动缓存计算结果,只有在相关依赖发生变化时才会重新计算,以提高性能。

监听器: 监听器则是在某个数据发生变化时执行特定的回调函数。你可以手动设置需要监听的数据,并在数据变化时执行指定的逻辑,而不像计算属性那样自动进行计算和缓存。

性能

计算属性: 由于具有缓存机制,计算属性在相同依赖数据的情况下只会计算一次,并且在依赖数据不变的情况下会直接返回缓存结果,因此具有较高的性能。

监听器: 监听器每次数据变化都会执行回调函数,不具有缓存机制,因此在多次数据变化时可能会存在性能开销。

相关推荐
待磨的钝刨1 小时前
【格式化查看JSON文件】coco的json文件内容都在一行如何按照json格式查看
开发语言·javascript·json
逐·風4 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
Devil枫4 小时前
Vue 3 单元测试与E2E测试
前端·vue.js·单元测试
尚梦5 小时前
uni-app 封装刘海状态栏(适用小程序, h5, 头条小程序)
前端·小程序·uni-app
GIS程序媛—椰子5 小时前
【Vue 全家桶】6、vue-router 路由(更新中)
前端·vue.js
前端青山6 小时前
Node.js-增强 API 安全性和性能优化
开发语言·前端·javascript·性能优化·前端框架·node.js
毕业设计制作和分享6 小时前
ssm《数据库系统原理》课程平台的设计与实现+vue
前端·数据库·vue.js·oracle·mybatis
程序媛小果6 小时前
基于java+SpringBoot+Vue的旅游管理系统设计与实现
java·vue.js·spring boot
从兄7 小时前
vue 使用docx-preview 预览替换文档内的特定变量
javascript·vue.js·ecmascript
凉辰8 小时前
设计模式 策略模式 场景Vue (技术提升)
vue.js·设计模式·策略模式