vue3中,ref()、reactive()、computed()、watch() 和 watchEffect()的区别

ref()、reactive()、computed()、watch() 和 watchEffect() 是 Vue 3 中常用的响应式处理函数,它们的主要区别如下:

  1. ref():ref() 函数用于将一个普通的 JavaScript 值转化为响应式对象。它返回一个具有 value 属性的对象,我们可以通过访问 value 属性来获取或修改值。当我们对 ref() 返回的对象的值进行修改时,Vue 会自动追踪这个修改,并在界面上同步更新。

  2. reactive():reactive() 函数用于创建一个响应式的对象。与 ref() 不同的是,它接受一个普通 JavaScript 对象作为参数,并返回一个代理对象,通过这个代理对象,我们可以访问和修改原始对象的属性。当我们修改这个代理对象的属性时,Vue 会自动追踪这个修改,并在界面上同步更新。

  3. computed():computed() 函数用于创建一个计算属性。它接受一个计算函数作为参数,并返回一个响应式对象。当计算函数中依赖的响应式数据发生改变时,Vue 会重新计算计算属性的值。计算属性可以像普通属性一样在模板中使用,而且在多个模板中只会计算一次。

  4. watch():watch() 函数用于监听一个响应式数据的变化,并在数据变化时执行指定的回调函数。它接受两个参数:要监听的数据和回调函数。当被监听的数据发生改变时,回调函数会被触发,可以在回调函数中执行一些逻辑操作。(手动监听,并执行自定义函数)

  5. watchEffect():watchEffect() 函数也用于监听响应式数据的变化,但它更像是一个自动运行的副作用。它接受一个函数作为参数,并立即执行这个函数。在函数中,我们可以访问到响应式数据,并在响应式数据发生改变时重新执行这个函数。watchEffect() 不需要明确指定要监听的数据,它会自动追踪函数中使用到的响应式数据。(自动监听,并执行自定义函数)

总结起来,ref() 用于创建简单的响应式数据,reactive() 用于创建复杂的响应式对象,computed() 用于创建计算属性,watch() 用于监听特定数据的变化并执行回调函数,而 watchEffect() 则可以在函数中使用响应式数据并自动追踪数据的变化。

相关推荐
共享家95273 小时前
搭建 AI 聊天机器人:”我的人生我做主“
前端·javascript·css·python·pycharm·html·状态模式
Halo_tjn4 小时前
基于封装的专项 知识点
java·前端·python·算法
摘星编程5 小时前
OpenHarmony环境下React Native:自定义useTruncate文本截断
javascript·react native·react.js
Duang007_5 小时前
【LeetCodeHot100 超详细Agent启发版本】字母异位词分组 (Group Anagrams)
开发语言·javascript·人工智能·python
有来技术6 小时前
Spring Boot 4 + Vue3 企业级多租户 SaaS:从共享 Schema 架构到商业化套餐设计
java·vue.js·spring boot·后端
东东5167 小时前
学院个人信息管理系统 (springboot+vue)
vue.js·spring boot·后端·个人开发·毕设
2601_949868367 小时前
Flutter for OpenHarmony 电子合同签署App实战 - 主入口实现
开发语言·javascript·flutter
m0_748229997 小时前
Vue2 vs Vue3:核心差异全解析
前端·javascript·vue.js
C澒7 小时前
前端监控系统的最佳实践
前端·安全·运维开发
xiaoxue..7 小时前
React 手写实现的 KeepAlive 组件
前端·javascript·react.js·面试