vue3中的ref和reactive

712 阅读1分钟

1.带ref的响应式变量

image.png

2.带reactive的响应式变量

  • reactive是vue3中提供实现响应式数据的方法
  • vue2中响应式数据是通过defineProperty实现的
  • vue3中响应式数据是通过ES6的Proxy实现的
  • reactive的参数必须是对象(json/arr) image.png

3.ref和reactive的区别

  • 问题1:为什么点击函数clickEvent中写的是age.value,而在template中写的是age呢? 答:ref的本质是reactive,当我们ref函数传递一个值之后,ref函数底层会自动将ref转换成reactive,也就是ref(18) ---> reactive({value: 18});至于template中,是因为vue能够自动识别并添加上.value image.png

  • 问题2:vue是如何能够自动识别呢? 答: vue在解析数据之前,会自动判断这个数据是否是ref类型,如果是就自动添加,否则不添加

同时引入了isRef和isReactive用于判断类型

image.png

问题3: ref和reactive的区别? 答: 如果template中使用的是ref类型的数据,vue自动添加.value,否则不添加