vue-computed
1、当数据A的逻辑很复杂时,把A这个数据写在计算属性中。
2、在computed中定义一个函数(看起来是一个函数,其实是一个属性)
3、通过选项computed:{计算属性a:值}。带有返回值return的函数。
特点:
-
监听值未在data中定义,以return返回值形式;
-
计算属性变量在computed中定义,属性监听在data中定义。
-
计算属性默认只有get来读取,手动修改计算属性时,会触发手写的set函数。
-
计算属性的值会被缓存,只有实例中相关依赖值改变时,才重新计算,性能好但不适合做异步请求。
-
计算属性是声明式的描述一个值依赖了其他值,依赖的值改变后重新计算结果更新DOM。属性监听的是定义的变量,当定义的值发生变化时,执行相对应的函数
computed 和 methods 区别:
1、理论上,computed 所有实现可以使用 methods 完全替换
2、计算属性是基于它们的响应式依赖进行缓存的。只在相关响应式依赖发生改变时它们才会重新求值。这就意味着只要 a
还没有发生改变,多次访问 a()
计算属性会立即返回之前的计算结果,而不必再次执行函数。而方法却会执行
3、我们为什么需要缓存?假设我们有一个性能开销比较大的计算属性 A,它需要遍历一个巨大的数组并做大量的计算。然后我们可能有其他的计算属性依赖于 A 。如果没有缓存,我们将不可避免的多次执行 A 的 getter!如果你不希望有缓存,请用方法来替代。
computed
和 watch
区别:
1、Vue 提供了一种更通用的方式来观察和响应 Vue 实例上的数据变动:侦听属性。当你有一些数据需要随着其它数据变动而变动时,你很容易滥用 watch,然而,通常更好的做法是使用计算属性而不是命令式的 watch 回调。
2、当需要在数据变化时执行异步或开销较大
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具