永发信息网

vue数组操作不触发前端重新渲染,怎么回

答案:1  悬赏:70  手机版
解决时间 2021-03-06 22:23
vue数组操作不触发前端重新渲染,怎么回
最佳答案
需要注意的是,Vue之所以能够监听Model状态的变化,是因为JavaScript语言本身提供了Proxy或者Object.observe()机制来监听对象状态的变化。但是,对于数组元素的赋值,却没有办法直接监听,因此,如果我们直接对数组元素赋值:
vm.todos[0] = {
name: 'New name',
description: 'New description'
};

会导致Vue无法更新View。
正确的方法是不要对数组元素赋值,而是更新:
vm.todos[0].name = 'New name';
vm.todos[0].description = 'New description';

或者,通过splice()方法,删除某个元素后,再添加一个元素,达到“赋值”的效果:
var index = 0;
var newElement = {...};
vm.todos.splice(index, 1, newElement);

Vue可以监听数组的splice、push、unshift等方法调用,所以,上述代码可以正确更新View。

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
福高福麻辣烫在哪里啊,我有事要去这个地方
银港在线怎么样
模仿的英文怎么写
韭菜能跟酸菜一起做馅吗
为什么羊喝奶时要跪下喝?
我报考的C1科二过了考科三可以换考C2吗?
为什么易车网最低询价跟4s店价格有差异
上一年级的儿子今天被老师调到最后一坐还没有
曾岩这个地址在什么地方,我要处理点事
军创返了么是不是传销
搜狐视频中大量本地小视频无法删除,大量占用
新天地我想知道这个在什么地方
生产中空玻璃需要的条件
1976年6月11号出生的本命佛是那尊
粉墙机是否真正实用
推荐资讯
喜欢sistar的男团有哪些还有男艺人
我记得有一个电影不错的,但我忘记了,好像是
跟老公不在一个城市,老公总是不给我打电话,
如何在境外开户
枫叶丹红秋水映== 炊烟袅袅,牛郎放牧乡间路=
1040是怎么分钱的
如何才能买到女人脚上穿的丝袜,借口合理点的
利源水店地址在哪,我要去那里办事
黄记面馆地址在哪,我要去那里办事
八方小区二期-C区在什么地方啊,我要过去处理
玻尿酸填充泪沟,玻尿酸填充泪沟多少钱,案例
维氏硬度与韦氏硬度是一样的吗/
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?