当前位置: 首页 > article >正文

Vue3的reactive、ref、toRef、toRefs用法以及区别

在 Vue3 中,reactive, ref, toRef, toRefs 都是用于创建响应式数据的方法。它们之间的主要区别在于它们的使用方式和返回值类型。

  1. reactive:用于将一个普通对象转换为响应式对象。当对象的属性发生变化时,视图会自动更新。
import { reactive } from 'vue';

const state = reactive({
  count: 0,
  info: {
    name: '张三',
    age: 18
  }
});
  1. ref:用于创建一个响应式的引用对象。它接受一个参数,可以是基本类型(如数字、字符串等),也可以是对象。当引用的值发生变化时,视图会自动更新。
import { ref } from 'vue';

const count = ref(0);
const info = ref({
  name: '张三',
  age: 18
});
  1. toRef:用于创建一个响应式的引用对象,与 ref 类似,但它接受一个对象作为参数。当对象的属性发生变化时,视图会自动更新。
import { toRef } from 'vue';

const state = reactive({
  info: {
    name: '张三',
    age: 18
  }
});

const nameRef = toRef(state, 'info.name');
const ageRef = toRef(state, 'info.age');
  1. toRefs:用于将一个响应式对象的所有属性转换为单独的响应式引用对象。这样可以让代码更易于理解和维护。
import { reactive, toRefs } from 'vue';

const state = reactive({
  count: 0,
  info: {
    name: '张三',
    age: 18
  }
});

const { count, info } = toRefs(state);

总结:reactive 用于创建响应式对象,可以包含嵌套的对象;reftoRef 用于创建响应式的引用对象,只能包含基本类型或对象的某个属性;toRefs 用于将响应式对象的所有属性转换为单独的响应式引用对象。


http://www.kler.cn/a/153587.html

相关文章:

  • 解决VSCode按住Ctrl(or Command) 点击鼠标左键不跳转的问题(不能Go to Definition)
  • 【JavaScript手撕代码】防抖节流
  • nginx配置反向代理及负载均衡
  • 30秒搞定一个属于你的问答机器人,快速抓取网站内容
  • c语言,输入整数n(行数,本例为4),按照如下规则打印数字图片 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16
  • ubuntu系统下搭建本地物联网mqtt服务器的步骤
  • 01-使用Git操作本地库,如初始化本地库,提交工作区文件到暂存区和本地库,查看版本信息,版本切换命令等
  • 【LeetCode:1094. 拼车 | 差分数组】
  • 模板上新|2023年10月DataEase模板市场上新动态
  • 【数据结构】拆分详解 - 堆
  • 数据结构算法-选择排序算法
  • webpack 使用打包报错 ERROR in node_modules\@types\node\ts4.8\assert.d.ts
  • 图解java.util.concurrent并发包源码系列——深入理解定时任务线程池ScheduledThreadPoolExecutor
  • C语言实现ARM MCU SWD离线调试器
  • Linux Spug自动化运维平台本地部署与公网远程访问
  • redis主从复制模式和哨兵机制
  • C/C++,图算法——求强联通的Tarjan算法之源程序
  • 『吴秋霖赠书活动 | 第五期』《Kubernetes原生微服务开发》
  • Spring Boot + MyBatis-Plus实现数据库读写分离
  • 在IDEA中,如何修改Jetty的端口号,操作超简单