时间:2021-05-26
前言
看文档不认真,开发也没有多注意,总是hack。忽悠忽悠就过去,但怎么说,歪门邪道还是不太好,现在就亡羊补牢,总结总结。
数组
索引
正文
使用下标更新数组元素
直接使用this.arrs[0] = 'zero';虽然数组确实是被更新了,但是更新不会被渲染到视图(html页面)上。因为Vue没有检测到数组的更新。
由于 JavaScript 的限制,Vue 不能检测以下变动的数组:
当你利用索引直接设置一个项时,例如:vm.items[indexOfItem] = newValue
当你修改数组的长度时,例如:vm.items.length = newLength
官方应对方法:
1、Vue.set( target, key, value )
2.vm.items.splice(indexOfItem, 1, newValue)
this.arrs.splice(0, 1, 'zero');使用赋值方式改变数组长度
即this.arrs.length = 100;无效!
官方应对方法:
1、vm.items.splice(newLength)
使用下标增删数组元素
即一下操作无效:
官方应对方法:变异方法。
8、替换数组(改变引用)
如官方所言:filter(), concat() 和 slice()都是会返回一个新数组
官方对性能问题的回应:
你可能认为这将导致 Vue 丢弃现有 DOM 并重新渲染整个列表。幸运的是,事实并非如此。Vue 为了使得 DOM 元素得到最大范围的重用而实现了一些智能的、启发式的方法,所以用一个含有相同元素的数组去替换原来的数组是非常高效的操作。
对象
索引
增删元素;
正文
增删元素
如上增删元素是无效的。
官方的解决方法:
// 新增Vue.set(this.foo, 'job', 'coder');// 删除Vue.delete(this.foo, 'name');Vue.delete对数组也是有效传送门
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
$type操作符检测类型种类代号别名Double1“double”String2“string”Object3“object”Array4“array”Bina
Vue变化检测Object使用DefineProperty、数组使用方法拦截实现。最近,Vue3.0将采用ES6Proxy的形式重新实现Vue的变化检测,在官方
电脑不能上网后通过系统在对电脑进行网络诊断时检测到“本地连接”没有有效的IP配置,那么应该如何解决呢?1、系统的检测报告如下所示,并有如
vscode检测到#include错误,请更新includePath。解决方法最近电脑重做,重新安装了一边vscode,但是写代码的时候发现头文件会标错,显示无
在默认情况下,每次当用户将设备连接好,iTunes都会自动检测接入设备的系统有无更新版本,当检测到有更新版本时,就会提醒用户进行升级操作。用户只需要点击&l