数组中某一条数据的更新
当界面上一条数据更新后,应该把对应数组中该数据替换掉
//直接数组中这一项等于新数据对象,就相当于覆盖掉了旧数据,其实本质是该项指针指向了新的数据对象,简单有效
updateUser(index,newUser){
this.users[index] = newUser
}
data:{
users:[
{name: 'tom',age: 18},
{name, 'lucy',age: 20}
]
}
注意:
1. vue实例本身只是监视了users实例的改变,没有监视数组内部数据的改变,如果内部数据发生改变,模板中进行了数据绑定,是读取不到的,如 this.users[index] = newUser,所以这条语句是没法通知到vue进行更新界面的
2.但是vue重写了数组原生的改变内部数据的一系列方法,意思就是说:数组中原先有增删的方法,vue对它们重写了,因为原生的方法改变了数据,但是不会更新界面上绑定的数据,而vue内部源码重写的时候做了两步:调用原来的方法,然后帮助更新界面
更新应该改为使用如下方法:
update(index.newUser){
//表示删掉第index的1个元素,并用newUser替换
this.users.splice(index,1,newUser);
}
如要使用数组中对应的其它方法,直接查找vue官方的API文档,有的方法vue已经封装的很好了,不需要自己去费时费力去写。