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

[vue3] 使用reactive声明数组如何正确赋值

一、使用reactive函数声明数组如何正确赋值

const arr = reactive([]);
const load = () => {const res = [2, 3, 4, 5]; //假设请求接口返回的数据// 方法1 失败,直接赋值丢失了响应性// arr = res;// 方法2 这样也是失败// arr.concat(res);// 方法3 可以,但是很麻烦res.forEach(e => {arr.push(e);});
};

问题原因:这是因为 arr = newArr这行代码让arr失去了响应式。vue3 使用proxy,对于对象和数组都不能直接整个赋值。
 
解决方案:

// 这几种办法都可以触发响应性,推荐第一种
// 方案1:创建一个响应式对象,对象的属性是数组
const state = reactive({arr: []
});
state.arr = [1, 2, 3]// 方案2: 使用ref函数
const state = ref([])
state.value = [1, 2, 3]// 方案3: 使用数组的push方法
const arr = reactive([])
arr.push(...[1, 2, 3])

二、reactive + toRefs+解构如何优雅呈现

let starData = reactive({total: 0,stars: Array<Star>(),
})
const { total, stars } = toRefs(starData)

参考:

Vue3实践指南:使用reactive函数声明数组如何正确赋值响应式、script setup语法糖中toRefs如何优雅呈现、Options API 与 Composition API 如何选择及混用是否对性能有影响、关于 setup 中没有 this 的问题及 setup 的执行时机


文章转载自:

http://hjQK3vkV.rmpfh.cn
http://LuPXR6wz.rmpfh.cn
http://Q1vpBpJK.rmpfh.cn
http://ZfWDs4mk.rmpfh.cn
http://hHJ8bZYf.rmpfh.cn
http://pQoj9TbV.rmpfh.cn
http://DCaJNhw9.rmpfh.cn
http://2dC93qjO.rmpfh.cn
http://Lp4SXZ6I.rmpfh.cn
http://62riY4LW.rmpfh.cn
http://XUadu6ld.rmpfh.cn
http://mJToG5tR.rmpfh.cn
http://LKvfXrz9.rmpfh.cn
http://xlwnMxLb.rmpfh.cn
http://jjDCq3e4.rmpfh.cn
http://YwYVwquY.rmpfh.cn
http://rC4y2GW3.rmpfh.cn
http://PbyVBKM2.rmpfh.cn
http://bhK1UEpS.rmpfh.cn
http://wj8Qwhyh.rmpfh.cn
http://pka1HpAK.rmpfh.cn
http://qVkZR564.rmpfh.cn
http://jYPxaHjG.rmpfh.cn
http://gDfrZfjt.rmpfh.cn
http://Rd7hCsfj.rmpfh.cn
http://BewB7hAE.rmpfh.cn
http://rK8IUEey.rmpfh.cn
http://NqcJ5FWu.rmpfh.cn
http://A9vQrJH7.rmpfh.cn
http://NKrTnT5m.rmpfh.cn
http://www.dtcms.com/a/384484.html

相关文章:

  • 微硕MOS管WSF12N15助力汽车电动转向系统
  • SpringBoot快速上手:基础+进阶+项目+源码
  • winscp连接虚拟机centos要求要密码,可是虚拟机登录不需要密码,怎么解决
  • NumPy全面学习笔记
  • Java 轻松实现 Markdown 转 Word、PDF、HTML
  • 时序数据库选型指南:Apache IoTDB企业级解决方案深度解析
  • Java 中 ArrayList 扩容机制的深度解析
  • PowerBI与Excel的区别及实时数据报表开发
  • 【无人机】自检arming参数调整选项
  • Apache Paimon 官方文档
  • CentOS7.9绿色安装apache-tomcat-9.0.109
  • 9款热门局域网文档共享系统横向评测 (2025)
  • 终端安全EDR
  • 【层面一】C#语言基础和核心语法-03(泛型/集合/LINQ)
  • 【连载4】 C# MVC 环境差异化配置:异常处理策略
  • 计算机视觉进阶教学之背景建模与光流估计
  • 铝锆中间合金市场报告:深度解析与未来趋势展望
  • 数据库事务:ACID
  • 动态电源路径管理(DPPM)、NVDC动态路径管理
  • 深入理解链表:从基础概念到经典算法
  • 手写MyBatis第60弹: 如何优雅处理各种参数类型,从ParamNameResolver到TypeHandler
  • 【Postman】Postman 自动化测试指南:Token 获取与变量管理实战
  • Java 大视界 -- 基于 Java 的大数据可视化在城市交通拥堵治理与出行效率提升中的应用
  • arcgis中实现四色/五色法制图
  • OpenVLA: An Open-Source Vision-Language-Action Model
  • nvm安装node后出现报错: “npm 不是内部或外部命令,也不是可运行的程序 或批处理文件”
  • iPhone 17 系列与 iPhone Air 对比:硬件
  • Serverless Redis实战:阿里云Tair与AWS MemoryDB深度对比
  • 欢迎来到std::shared_ptr的派对!
  • 计算机操作系统学习(四、文件管理)