首页
学习
活动
专区
圈层
工具
发布
技术百科首页 >Vue >Vue 的 computed 和 watch 有什么区别?

Vue 的 computed 和 watch 有什么区别?

词条归属:Vue

1. computed 用于派生状态

computed 用于定义计算属性,它基于响应式依赖计算出一个新值,并缓存结果。只有当其依赖发生变化时才会重新计算,否则直接返回缓存值,避免重复运算。计算属性默认只读,也可通过提供 get 和 set 定义可写的计算属性。它适合"根据现有状态推导出新状态"的场景,例如根据列表计算总价、根据姓名拼接全名。

2. watch 用于响应变化执行副作用

watch 用于监听一个或多个响应式数据源,当数据变化时执行自定义逻辑(副作用),例如发起网络请求、操作路由、修改其他非派生状态。watch 可以获取新旧值,适合在数据变化时执行异步操作或命令式逻辑。

3. 选择依据

二者的核心区别在于用途:computed 用于声明式地"计算一个值",强调缓存与派生;watch 用于命令式地"在变化时做事",强调副作用执行。能用计算属性表达的派生逻辑优先用 computed,涉及异步、副作用或需要访问新旧值时用 watch。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
领券