怎样清空vue中的数组对象
var a=[
{a:0,b:{}},
{a:1,b:{},},
{a:2,b:{}},
{a:3,b:{}}
]
//假设a的长度不为1,我们现在需要将a数组变为长度为1的数组,且a[0]的键值清空。
不太规范的搞法1:
var a = new Array()
var temp = {
a:'',b:{}
}
a.push(temp)
不太规范的搞法2:
a=[{
a:'',b:{}
}]
如果你不需要vue再监听数组,比方说你是在dialog关闭的时候清空dialog内数据,那基本无所谓。
如果需要监听,你会发现你修改这个数组,vue不再刷新页面了——专业的说法是:你修改了数组绑定的地址,vue无法从原地址触发相应了。
这样做会导致vue失去对数组的监听。
正确的搞法:
a.splice(1,a.length-1)
a[0].a=''
a[0].b={}
这样做,a的地址没有改变,a[0]的地址也没有改变。我们只修改了a[0]的各个键名。
当然,自己封装方法实现对a[0]的所有键值的类型判断和键值重置,自然是更优雅的方式。本文就不做延伸了。