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

【VUE】Vue中 computed计算属性和watch侦听器的区别

核心功能不同
computed 是一个计算属性,其核心功能是基于已有的数据属性计算得出新的属性值。当某个依赖的数据发生变化时,computed 会自动重新计算并更新自己的值。因此,可以将 computed 看做是一种“派生状态”。

watch 是一个观察者函数(watcher),可以监听某个数据的变化并执行回调函数。当被监听的数据变化时,watch 将会被触发并执行与之相关的回调函数。watch 的核心功能是“响应式”,它可以对数据变化做出响应。

使用场景不同
computed 适用于那些需要根据已有数据计算得出新值的情况,例如:对列表进行过滤、格式化日期等。
computed 的特点是:响应式、缓存和计算结果只有在相关依赖发生变化时才进行更新。
因此,如果一个属性需要频繁计算,又与其他属性有关联,那么使用 computed 可以有效提高应用的性能。

watch 适用于那些需要在数据变化时采取特定操作的情况,例如:异步操作、API 调用等。
watch 的特点是:监听数据变化、执行回调函数并且可以拿到新旧值。

响应式的原理不同
computed 依赖于响应式系统的更新机制,当计算属性所依赖的数据发生变化时,会自动触发重新计算。
因此,computed 是一种响应式依赖关系。

watch 使用了 Vue 的观察者机制,底层实现是通过 Object.defineProperty() 来设置 getter 和 setter 函数,并在数据变化时触发回调函数。
因此,watch 基于的是“事件监听”,而不是响应式依赖关系。


http://www.mrgr.cn/news/53838.html

相关文章:

  • 力扣243题详解:最短单词距离的多种解法与复杂度分析
  • SqlDbx连接oracle(可用)
  • Centos7源报错问题
  • VMware通过Vcenter升级Esxi
  • 【【自动驾驶】车辆运动学模型】
  • 数据结构与集合源码
  • 018_基于python+django荣誉证书管理系统2024_jytq9489
  • 快速在找到函数的实体的方法
  • c语言:整数的分解与提取and打印数根(手写代码版)
  • ubuntu 安装nginx
  • 大话C++:第20篇 多继承与菱形继承问题
  • 如何在Matlab界面中添加文件选择器?
  • C++:priority_queue优先队列
  • 【经验】无线鼠标、键盘的usb接收器配对
  • IDEA中我常用的快捷键
  • LeetCode 145.二叉树的后序遍历
  • 深入探索Python网络爬虫:从电商网站抓取书籍数据的实战案例
  • 嵌入式STM32学习——按键的基础知识
  • (JAVA)贪心算法、加权有向图与求得最短路径的基本论述与实现
  • 空间解析几何 4:空间中线段到圆的距离【附MATLAB代码】
  • 13.java面向对象:继承
  • 【算法——递归回溯】
  • 机器人学 目录
  • 【JS】哈希(数组)解决赎金信问题
  • RAG拉满:上下文Embedding与大模型Cache的深度融合
  • rabbitMQ消息重复问题怎么解决的?