ref 和 reactive的区别

两者概念

ref函数:定义一个响应式的数据(主要针对基础类型数据)
方法:引入 ref 函数,const xxx = ref(initValue) 模板中读取数据: 不需要.value,直接:<div>{{xxx}}</div>

reactive函数:定义一个对象类型的响应式数据(基本类型不要用它,要用ref函数)
方法:const x= reactive(源对象)接收一个对象(或数组),返回一个代理对象(Proxy 的实例对象,简称 proxy 对象)
特点:可以实现数组、深层对象的响应式数据,这是 vue2.0 中无法实现的,底层基于 Proxy

从定义数据角度对比

ref 用来定义:基本类型数据
reactive 用来定义:对象(或数组)类型数据。会自动deep

注意:ref 也可以用来定义对象(或数组)类型数据, 它内部会自动通过reactive转为代理对象。

从原理角度对比

ref 通过Object.defineProperty()的get与set来实现响应式(数据劫持)。
reactive 通过使用 Proxy 来实现响应式(数据劫持), 并通过 Reflect 操作源对象内部的数据。

ref补充:

RefImpl 对象中.value 是基础类型时,用的是 Object.defineProperty 通过 get 和 set 实现的响应式数据

RefImpl 对象中.value 是对象时候,用的是 proxy 代理对象实现的响应式数据

【ref 和 reactive的区别】相关推荐

  1. vue3 - ref和reactive的区别

    文章搬运自wx60d4764eb475e 的vue3中ref和reactive的区别(系列六) 1. ref和reactive区别:     如果在template里使用的是ref类型的数据, 那么V ...

  2. ref和reactive的区别

    理解: 1.ref是定义简单类型 和单一的对象 2.reactive 定义复杂的类型 梳理文档: ref和reactive都是Vue.js 3.x版本中新增的响应式API,用于实现组件的数据响应式更新 ...

  3. vue3 ref 和reactive的区别

    文章目录 Ref reactive 源码分析视频 点击进入 Ref ref数据响应式监听.ref 函数传入一个值作为参数,一般传入基本数据类型,返回一个基于该值的响应式Ref对象,该对象中的值一旦被改 ...

  4. vue3 ref 和 reactive 区别

    前言 最近学习cloud项目,前端使用到 vue3 + ts 等技术,在写需求过程中遇到响应式数据问题,经百度查找相关笔记,在此记录一下,在实战中成长吧. 问题 出现的问题:定义一个默认数组并且 fo ...

  5. ref、 reactive、toref、torefs的用法,区别

    ref. reactive.toref.torefs的用法,区别 ref 接受一个内部值并返回一个响应式且可变的 ref 对象.ref 对象仅有一个 .value property,指向该内部值 co ...

  6. vue3.0语法糖及ref、reactive、toRef、toRefs的区别

    vue3.0语法糖 前几天一个月薪35k的兄弟,给我推了一个人工智能学习网站,看了一段时间挺有意思的.包括语音识别.机器翻译等从基础到实战都有,很详细,分享给大家. 1.什么是setup语法糖 起初 ...

  7. reactive和ref的特性和区别

    reactive和ref返回的都是一个原始对象的 Proxy,它和原始对象是不相等的 一.定义数据方面: reactive:仅对对象类型有效(对象.数组和 Map.Set 这样的集合类型),而对 st ...

  8. ref,reactive toRaw

    ref() 在vue3.0引入了composition API , setup函数是其核心函数 在setup函数中,可以使用ref函数,用于创建一个响应式数据,当数据发生改变时,Vue会自动更新UI ...

  9. Vue3 初探 ref、reactive 、及改变数组的值

    概况 Vue3 里要实现数据的响应式监听一共有两种方式既:ref 和 reactive 他们既有区别又有联系. ref() ref数据响应式监听.ref 函数传入一个值作为参数,一般传入基本数据类型, ...

最新文章

  1. iframe的sandbox使用
  2. Eclipse中异常断点问题
  3. 黑客数字雨html单页,Hei客帝国数字雨.html
  4. 【题解】弃疗Nim (2019,5.23)
  5. Python_排序算法实现
  6. 容器编排技术 -- Kubernetes Volume
  7. hibernate mysql自定义变量_hibernate 跟 MySql in的参数变量
  8. DeFi预言机Umbrella Network与BSC上去中心化杠杆交易协议WOWswap达成合作
  9. Linux系统下select的使用方式
  10. 分享ISTQB培训体验
  11. 面试出现频率超高的一道算法题
  12. 手摸手教你git配置ssh
  13. 【基础】杨辉三角python题解
  14. 无法使用计算机名访问共享,局域网内无法用计算机名访问共享的解决办法
  15. 《我爱我的祖国》受捧 再现专线另类舌尖上中国
  16. u盘克隆服务器系统,只需4步!简单又快速的克隆U盘
  17. 钉钉生成jspapi token出现IP地址不在白名单的解决办法
  18. 在win10下把iPad利用起来,当作电脑的副屏
  19. 拟人肌肉骨骼气动人工肌肉驱动的10自由度机器人手臂
  20. PHPExcel 操作

热门文章

  1. .Net Core 获取Linux服务器信息
  2. unity的安装配置和第一个游戏-unity开学第一课
  3. Intel汇编-基本浮点运算
  4. 骡马视频,神马视频,带TV,带影院。不用数据库的搭建教程
  5. 如何直接引用微信的图片链接详解
  6. Twitter限制12个小时,只要我登陆账号过12个小时就能恢复正常,但是我根本登陆进去账号,一直提示技术问题请重试,有哪位大哥知道怎么弄吗?
  7. 学习这篇总结后,你也能做出天天快报一样的推荐系统 1
  8. 使用reg管理注册表
  9. 第四节 参数化设计实现模块的重用
  10. linux桌面美化之把linux桌面变成苹果桌面