VUE3之数组赋值

本着一学就会,一写就废的原则,遇到一个奇怪的数组赋值问题,搞了好久。

<a-button @click="getData">{{ initData }}</a-button>

<Bar :chartData="chartBarData" />

const chartBarData = ref([   // 这里之前用的reactive,改成ref就好了。        

    {

      name: '1月',

      value: 120,

    },

    {

      name: '2月',

      value: 275,

    },

    {

      name: '3月',

      value: 235,

    },

  ]);

getbb().then((res) => {

      chartBarData.value = res;

 });

原文里有三种方法,这里用的第三种。

参考链接Vue3数组重新赋值问题_vue3 reactive数组重新赋值-CSDN博客

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3中,可以使用reactive函数将一个普通的JavaScript对象转换为响应式对象。然而,对于数组赋值,直接使用等号或concat方法是不会保留响应性的。引用[3] 以下是几种在Vue 3中将整个数组赋值给响应式数据的方法: 1. 使用索引遍历赋值:可以使用for循环或forEach方法遍历要赋值数组,并逐个将元素push到响应式数组中。例如: ```javascript const state = reactive({ arr: [] }); const newArray = [1, 2, 3]; newArray.forEach(item => { state.arr.push(item); }); ``` 2. 使用push和展开运算符:可以使用push方法将整个数组的元素逐个添加到响应式数组中。例如: ```javascript const arr = reactive([]); const newArray = [1, 2, 3]; arr.push(...newArray); ``` 3. 使用splice方法:可以使用splice方法将整个数组替换为新的数组,并保持响应性。例如: ```javascript const arr = reactive([]); const newArray = [1, 2, 3]; arr.splice(0, arr.length, ...newArray); ``` 其中,第一参数是开始替换的索引,第二个参数是要删除的元素个数,第三个及以后的参数是要插入的新元素。通过将要替换的数组长度设置为0,然后使用展开运算符将新数组的元素插入,可以实现整个数组的替换。引用 总结来说,要保留reactive数组的响应性,需要使用push方法、展开运算符或splice方法来将整个数组赋值给响应式数据。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [vue3使用reactive包裹数组如何正确赋值](https://blog.csdn.net/qq_37548296/article/details/116138186)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值