You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue+TypeScript中如何正确声明对象数组类型的Ref?

Vue中对象数组类型Ref的最优声明方式
  • 基础声明与初始化
    直接使用ref()初始化空的对象数组,或者带默认数据的对象数组即可:
// 初始化空对象数组
const itemList = ref([])

// 带初始对象数据的数组
const itemList = ref([
  { id: 1, name: '测试项1' },
  { id: 2, name: '测试项2' }
])

这种方式下,Vue会自动对数组及内部的对象做深度响应式转换,不需要额外处理。

  • 数据修改的正确姿势
  1. 添加元素:直接调用数组原生方法,或者重新赋值数组
// 追加单个对象
itemList.value.push({ id: 3, name: '新添加项' })

// 批量替换或追加(展开运算符保持原数组响应式)
itemList.value = [...itemList.value, { id: 3, name: '新添加项' }]
  1. 修改数组内对象的属性:直接访问修改即可,响应式会自动生效
// 修改第一个对象的name属性
itemList.value[0].name = '已修改名称'
  • 避坑提醒
    不要给数组内的每个对象单独包裹ref(),这属于多余操作,反而会增加代码复杂度。ref()初始化对象数组时,内部对象已经被Vue处理为响应式了。

内容的提问来源于stack exchange,提问作者Robert Ling

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 22:21:02