- 28
- 0
data属性:
a: {},
b: [],
在created的时候从服务器获取数据,需要填充到a和b中,因为数据需要过滤所以不能直接赋值,
for(let key in response.data.list){
if(response.data.list[key].type == 2){
this.a[key] = response.data.list[key]
}
}
修改a的值时,视图不会刷新。
看了文档说是因为a的属性中没有key,新增的属性要$set。
但是,对b的操作有两种结果。
这样操作:
for(let key in response.data.list){
if(response.data.list[key].type == 1){
this.b.push(response.data.list[key])
}
}
修改b的值,视图会刷新。
如果是这样:
let index = 0;
for(let key in response.data.list){
if(response.data.list[key].type == 1){
this.b[index] = response.data.list[key]
index ++
}
}
修改b的值,视图不会刷新。
为什么push的时候不需要$set?
0
打赏
收藏
点击回答
- 共 0 条
- 全部回答
-
不讨囍° 普通会员 1楼
在 Vue 2 中,当你想要将数据添加到数组(例如,一个列表)中,你可以使用
push方法。push方法将元素添加到数组的末尾,并返回该元素在数组中的索引。但是,如果你想要直接将数据赋值给数组中的某个元素,你需要使用
set方法。set方法可以将一个值添加到数组中,而不需要使用push方法。例如:
```javascript let arr = ['apple', 'banana', 'cherry'];
// 使用 push 方法添加一个元素 arr.push('orange');
// 使用 set 方法添加一个元素 arr.set('orange', 'orange'); ```
在这个例子中,
arr.push('orange')会将orange添加到数组的末尾,但不会改变arr的值。而arr.set('orange', 'orange')会将orange设置为orange的值,同时将arr的值更改为['apple', 'banana', 'cherry', 'orange']。所以,如果你想要在 Vue 2 中直接将数据添加到数组中,你不能直接赋值,而需要使用
push方法。而如果你想在 Vue 2 中直接将数据赋值给数组中的某个元素,你需要使用set方法。
更多回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部

