文章搬运自wx60d4764eb475e 的vue3中ref和reactive的区别(系列六)

1. ref和reactive区别:
    如果在template里使用的是ref类型的数据, 那么Vue会自动帮我们添加.value
    如果在template里使用的是reactive类型的数据, 那么Vue不会自动帮我们添加.value

2. Vue是如何决定是否需要自动添加.value的
    Vue在解析数据之前, 会自动判断这个数据是否是ref类型的,
    如果是就自动添加.value, 如果不是就不自动添加.value

3. Vue是如何判断当前的数据是否是ref类型的
    通过当前数据的__v_ref来判断的
    如果有这个私有的属性, 并且取值为true, 那么就代表是一个ref类型的数据

数据是ref类型

<template><div><p>{{ age }}</p><button @click="Fn">按钮</button></div>
</template><script>
import { ref } from "vue";
export default {name: "App",setup() {// ref类型在底层会自动转换成reactive类型// ref(18) -> reactive({value: 18})let age = ref(18);function Fn() {age.value = 666;console.log(age)}return { age, Fn };},
};
</script>

点击按钮,页面数据变成666了,注意,vue模板中没有age.value,因为ref类型的数据有isRef属性,底层自动会将.value加上

数据是reactive类型

<template><div><p>{{age}}</p><button @click="Fn">按钮</button></div>
</template><script>import {reactive} from 'vue';export default {name: 'App',setup() {let age = reactive({value: 18});function Fn() {age.value = 666;console.log(age)}return {age, Fn}}
}
</script>

点击按钮,页面还是个对象数据,因为是reactive类型数据,没有isRef属性,vue不会自动在模板添加.value, 所以我们需要手动在模板添加age.value

我们如何判断数据到底是ref还是reactive?

通过isRef / isReactive 方法

<template><div><p>{{age}}</p><button @click="Fn">按钮</button></div>
</template><script>import {reactive} from 'vue';export default {name: 'App',setup() {let age = reactive({value: 18});function Fn() {console.log(isRef(age)); //falseconsole.log(isReactive(age));  //trueage.value = 666;}return {age, Fn}}
}
</script>

vue3 - ref和reactive的区别相关推荐

  1. vue3 ref 和reactive的区别

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

  2. vue3 ref,reactive请求后的赋值问题以及解决方法

    vue3 ref,reactive请求后的赋值问题以及解决方法 ​ 开发的过程中,我们一定会进行接口的对接,将响应的结果赋值给我们页面上需要展示或者操作的变量,在vue3中,我们可能会稍微的有点不适应 ...

  3. 【ref 和 reactive的区别】

    ref 和 reactive的区别 两者概念 ref函数:定义一个响应式的数据(主要针对基础类型数据) 方法:引入 ref 函数,const xxx = ref(initValue) 模板中读取数据: ...

  4. vue3 ref 和 reactive 区别

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

  5. ref和reactive的区别

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

  6. 19.0 vue3 ref,reactive请求后的赋值问题以及解决方法

    上一篇: 18.0 vue3 Vue Router的使用(1)_十一月的萧邦-CSDN博客 开发的过程中,我们一定会进行接口的对接,将响应的结果赋值给我们页面上需要展示或者操作的变量,在vue3中,我 ...

  7. vue3 ref及reactive响应式原理案例 语法糖/非语法糖

    非语法糖: <template> <h1>博主的信息</h1> <h2>姓名:{{name}}</h2> <h2>年龄:{{ag ...

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

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

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

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

最新文章

  1. 【c语言】蓝桥杯算法训练 乘法表
  2. mysql自动编号_MySQL自动编号与主键
  3. MFC中Mat实现打开本地图片
  4. 用PB从ORACLE导出DBF文件,PB导出规定格式DBF文件
  5. win10浏览器_[系统] win10浏览器上网问题
  6. Windows Server 2012 新特性:IPAM的配置
  7. hadoop学习6 运行map reduce出错
  8. oracle-11g-R2监听文件配置
  9. c# Form中的键盘响应
  10. 如何使用SQL Server Management Studio(SSMS)连接到Azure存储帐户
  11. react-native环境配置——Android工程搭建
  12. 网吧的云计算机,云电脑和网吧开启线上网咖是新趋势?
  13. Linux 下文件IO编程进程控制实验
  14. 简单盘点游戏开发引擎
  15. 最新我爱防红网QQ防红跳转短网址生成源码
  16. 企业发放奖金,根据员工销售额提成.(超出部分)假如员工的销售额是i,那么计算规则如下:i 10万,10%提成;。。。输入员工的销售额,计算出他的提成
  17. 公司项目重构-Web安全-认证和会话管理
  18. 28、完美的RestApi
  19. 智能行业创业该如何选择电销机器人项目加盟商
  20. 新概念1 课文和单词(2022/12/22)

热门文章

  1. 如何批量将多个 PDF 文档快速合并成一个文档
  2. 关于计算机书籍的收集与整理(二)
  3. 关于图像处理分析的一些理解
  4. [Halcon] WriteImage保存图像崩溃问题
  5. spoolsv - spoolsv.exe - 进程信息
  6. 自学CTP客户端开发记录001
  7. DeFi:过去、现在和未来
  8. 通用搜索引擎和垂直搜索引擎的区别
  9. hive时间戳函数之unix_timestamp(),from_unixtime,to_utc_timestamp
  10. PowerMock注解PowerMockIgnore的使用方法