vue中实现局部刷新
某条数据变更后只改变那一条数据,而不是重新加载整个列表后台管理系统一般都会有增删改查等操作,假如一个页面存放八条数据,现在对第三条数据进行变更,变更完成后要刷新数据,有两种方案:数据变更完成后调用查询列表的接口对整个列表进行刷新;只刷新数据列表中要变更的那一条数据,不需要调用查询列表的接口重新加载整个列表;虽然两种方法都可以达到目的,但是第一种方法因为要调接口,显然更耗性能,这里着重说一下第二种方
·
某条数据变更后只改变那一条数据,而不是重新加载整个列表
后台管理系统一般都会有增删改查等操作,假如一个页面存放八条数据,现在对第三条数据进行变更,变更完成后要刷新数据,有两种方案:
- 数据变更完成后调用查询列表的接口对整个列表进行刷新;
- 只刷新数据列表中要变更的那一条数据,不需要调用查询列表的接口重新加载整个列表;
虽然两种方法都可以达到目的,但是第一种方法因为要调接口,显然更耗性能,这里着重说一下第二种方法。
- 在state中定义一个数组dataList用来存放列表数据,定义一个对象modifyForm用来存放需要变更的数据;
state:{
dataList:[],
modifyForm:{}
}
- 在vuex中定义一个方法changeDataList用来改变数据,确定变更时调用;
this.changeDataList(this.modifyForm)
- 确定变更会将需要变更的那条数据对象提交给vuex,然后找到dataList中原来的那条数据进行更改,这样就可以实现局部刷新了
changeDataList(state, value) {
var obj = state.dataList.find(item => {
return item.id == value.id;
})
obj.name= value.name;
obj.age= value.age;
obj.province= value.province;
}
更多推荐
已为社区贡献1条内容
所有评论(0)