ref和reactive区别

2023-09-18 15:25:57

使用区别

reactive定义引用数据类型,ref 定义基本类型
reactive定义的变量直接使用,ref 定义的变量使用时需要.value
模板中均可直接使用,vue帮我们判断了是reactive还是ref定义的(通过__v_isRef属性),从而自动添加了.value。

// 定义
let count = ref(0);
let obj = reactive({a: 1, b: 2});
// 使用
count.value = 1;
menu  = {a: 1, b: 2, c: 3};

return {
	count,
	...toRefs(menu)
}

ref

ref 用于创建一个简单的响应式数据,即一个基本类型的数据,比如数字、字符串等,它会将这个基本类型数据包装成一个响应式对象,并且返回一个带有.value属性的对象。

这样,我们在对这个响应式对象进行读取或修改时,就可以直接使用.value来访问或修改它的值。

reactive

reactive 用于创建一个复杂的响应式数据,即一个对象或数组。

它会将这个对象或数组的所有属性或元素都转化为响应式数据,并返回一个响应式对象。

我们在对这个响应式对象进行读取或修改时,可以直接使用点操作符或数组下标来访问或修改它的属性或元素。

<template>
  <div>
    <p>count: {{ count.value }}</p>
    <button @click="increment">increment</button>
    <p>person: {{ person.name }}, {{ person.age }}</p>
    <button @click="updatePerson">update person</button>
  </div>
</template>

<script>
import { ref, reactive } from 'vue';

export default {
  setup() {
    // 使用 ref 创建一个响应式的基本类型变量
    const count = ref(0);

    // 使用 reactive 创建一个响应式的对象
    const person = reactive({
      name: 'Alice',
      age: 20,
    });

    // 点击按钮,修改 count
    const increment = () => {
      count.value++;
    };

    // 点击按钮,修改 person
    const updatePerson = () => {
      person.name = 'Bob';
      person.age = 30;
    };

    return {
      count,
      person,
      increment,
      updatePerson,
    };
  },
};
</script>

更多推荐

[hive]搭建hive3.1.2hiveserver2高可用可hive metastore高可用

参考:Apachehive3.1.2从单机到高可用部署HiveServer2高可用Metastore高可用hiveonsparkhiveserver2webUI高可用集群启动脚本_薛定谔的猫不吃猫粮的博客-CSDN博客没用里头的hiveonspark,测试后发现版本冲突一、Hive集群规划(蓝色部分)ck1ck2ck3

SpringCloud OpenFeign--声明式WebService 客户端

😀前言本篇博文是关于SpringCloudOpenFeign的基本介绍,希望你能够喜欢🏠个人主页:晨犀主页🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰如果文章有什么需要改进的地方还请大佬不吝

2023华为OD统一考试(B卷)题库清单(按算法分类),如果你时间紧迫,就按这个刷

目录专栏导读华为OD机试算法题太多了,知识点繁杂,如何刷题更有效率呢?一、逻辑分析二、数据结构1、线性表①数组②双指针2、map与list3、优先队列4、滑动窗口5、二叉树6、并查集7、栈三、算法1、基础算法①贪心算法②二分查找③分治递归④搜索算法⑤排序算法2、字符串①KMP②字符串处理③正则表达式3、深度优先搜索①广

携手共赴数智未来|维视智造出席2023英特尔工业物联网大会

​​9月20日,“数智芯生力”2023英特尔工业物联网大会”于上海隆重举办。作为主办方,英特尔邀请了赋能工业数字化技术创新的多位合作伙伴,展示当前中国工业物联网领域的优秀技术与成果,共聚一堂积极探讨数字化机器视觉、控制机器人等领域的热点话题。在工业数字化转型和“双碳”目标驱动下,制造业众多领域正在以前所未有的速度步入工

大型集团借力泛微搭建语言汇率时区统一、业务协同的国际化OA系统

国际化、全球化集团,业务遍布全世界,下属公司众多,集团对管理方式和企业文化塑造有着很高的要求。不少大型集团以数字化方式助力全球统一办公,深化企业统一管理。面对大型集团全球化的管理诉求,数字化办公系统作为集团日常使用的平台,自然需要适应企业管理升级,灵活适应国际化带来的管理发展变化和满足全球协同办公需求。最重要的是实现信

华为OD:跳房子I

题目描述跳房子,也叫跳飞机,是一种世界性的儿童游戏。游戏参与者需要分多个回合按顺序跳到第1格直到房子的最后一格跳房子的过程中,可以向前跳,也可以向后跳。假设房子的总格数是count,小红每回合可能连续跳的步教都放在数组steps中,请问数组中是否有一种步数的组合,可以让小红两个回合跳到最后一格?如果有,请输出索引和最小

ffmpeg抠图

1.不用png,用AVFrame2.合流3.图片抠图透明(1.)mp4扣yuv图,(2)用1.把一张yuv标记为透明然后av_hwframe_transfer_data到GPU(3)用抠图算法函数对yuv进行处理(4)qsv的h264_qsv只支持nv12和qsv,但qsv本身并不限制像素格式,比如在qsv里可以用vp

MES系统是如何采集Modbus设备数据的呢?

随着工业自动化的不断发展,各种协议和标准在行业中变得越来越重要。其中,Modbus协议是一种在工业自动化领域非常流行的通信协议,而Modbus网关是实现Modbus协议转换的关键设备。一、MES系统与Modbus网关MES系统即制造执行系统(ManufacturingExecutionSystem),是一套面向制造过程

【含java面试题】深入解析栈溢出及JVM参数设置

AI绘画关于SD,MJ,GPT,SDXL百科全书面试题分享点我直达2023Python面试题2023最新面试合集链接2023大厂面试题PDF面试题PDF版本java、python面试题项目实战:AI文本OCR识别最佳实践AIGamma一键生成PPT工具直达链接玩转cloudStudio在线编码神器玩转GPUAI绘画、A

SQL性能优化

当你的数据里只有几千几万,那么SQL优化并不会发挥太大价值,但当你的数据里去到了几百上千万,SQL优化的价值就体现出来了!因此稍微有些经验的同学都知道,怎么让MySQL查询语句又快又好是一件很重要的事情。要让SQL又快又好的前提是,我们知道它「病」在哪里,而explain关键字就是MySQL提供给我们的一把武器!在我们

需要每日温习的java八股文基础

一、java(1)集合1.list:LinkedList、ArrayList和VectorArrayList、LinkedList和Vector的区别,场景和扩容机制源码LinkedList接口实现类,链表,插入删除,没有同步,线程不安全ArrayList接口实现类,数组,随机访问,没有同步,线程不安全Vector接口

热文推荐