MDRY

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

vue——vue3中ref和reactive函数

一.ref函数

  • 作用:定义一个响应式数据
  • 语法:const xxx = ref(initValue)
    • 创建一个包含响应式数据的引用对象(reference对象,简称ref对象)

 

    • JS中操作数据: xxx.value

  

    • 模板中读取数据: 不需要.value,直接:<div>{{xxx}}</div>

   

    • 返回对象  

      

  • 备注:
    •   接收的数据可以是:基本类型、也可以是对象类型。

    •   基本类型的数据:响应式依然是靠Object.defineProperty()getset完成的。

    •   对象类型的数据:内部 “ 求助 ”了Vue3.0中的一个新函数—— reactive函数

二.reactive函数

  • 作用: 定义一个对象类型的响应式数据(基本类型不要用它,要用ref函数)
  • 语法:const 代理对象= reactive(源对象)接收一个对象(或数组),返回一个代理对象(Proxy的实例对象,简称proxy对象)

  • reactive定义的响应式数据是“深层次的”。(比如上面代码中的c:666,也可以响应到)

  • 内部基于 ES6 的 Proxy 实现,通过代理对象操作源对象内部数据进行操作。

 三.ref 和 reactive函数的对比:

ref 函数用来定义: 基本数据类型,也可以定义对象(数组) 类型数据,但会自动转换为代理对象

reactive 用来定义: 对象(或数组)类型数据。

ref 函数通过Object.definedPropery() 的get() 和 set() 方法实现的数据响应式。

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

ref 函数定义的数据: 操作数据需要.value 读取模板的时候直接读取不需要.value
reactive: 定义数据: 操作数据与读取数据: 均不要.value

 

posted on   小懵丹儿  阅读(202)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示