• vue3 ref 和 reactive 区别


    Vue 3 引入了两种新的响应式 API:ref 和 reactive。这两个 API 都用于创建响应式数据,但它们的使用场景和行为有所不同。

    ref

    用途:ref 用于创建基本数据类型的响应式引用,如字符串、数字、布尔值等。
    使用方式:在模板中使用时,Vue 会自动添加 .value 来访问 ref 创建的数据。在 JavaScript 中,你需要通过 .value 属性来获取或修改 ref 对象中的数据。
    原理:ref 通过 Object.defineProperty 的 get 和 set 来实现响应性,它返回一个对象,该对象的 .value 属性是响应式的。

    reactive

    用途:reactive 用于创建对象或数组的响应式代理。
    使用方式:在模板中直接使用 reactive 创建的数据,不需要添加 .value。在 JavaScript 中,你可以直接访问和修改 reactive 对象的属性,就像访问普通 JavaScript 对象一样。
    原理:reactive 使用 Proxy 来创建响应式代理,这意味着你可以访问和修改对象的所有属性,而不需要通过 .value。

    区别总结

    数据类型:ref 适用于基本数据类型,而 reactive 适用于对象和数组。
    访问方式:ref 需要通过 .value 访问或修改数据,reactive 则直接访问对象属性。
    模板中的使用:在 Vue 模板中使用 ref 类型的数据时,Vue 会自动处理 .value,而在 reactive 对象中,你可以直接使用属性
    设计理念:ref 主要解决单一元素/数据的响应式问题,而 reactive 解决复杂数据结构的响应式问题。

    示例

    // 使用 ref

    const count = ref(0);
    
    • 1

    // 在模板中使用 count.value 来显示或绑定
    // 在 JavaScript 中访问或修改 count.value

    // 使用 reactive

    const state = reactive({ count: 0 });
    
    • 1

    // 在模板中直接使用 state.count 来显示或绑定
    // 在 JavaScript 中直接访问或修改 state.count

    在实际开发中,你可以根据需要创建的数据类型和使用场景来选择使用 ref 还是 reactive。
    对于简单的基本数据类型,使用 ref 可能更合适;而对于复杂的数据结构,如组件的状态管理,reactive 提供了更直观和方便的方式来处理。

  • 相关阅读:
    Python爬虫是否合法?
    新品发布 | Cloudpods 3.9.2 版本上线!
    Java中将List转换为Map
    含文档+PPT+源码等]精品微信小程序音乐播放器小程序+后台管理系统|前后分离VUE[包运行成功]微信小程序项目源码Java毕业设计
    .NET实现获取NTP服务器时间并同步(附带Windows系统启用NTP服务功能)
    1.HTML中网页介绍
    Java工具类--http请求-post
    用R语言和python进行社交网络中的社区检测
    【MySQL】数据库的操作
    BC35&BC95 ONENET MQTT(旧)
  • 原文地址:https://blog.csdn.net/adley_app/article/details/136732727