工作记录
今天码代码得时候发现同事写的代码,引起好奇心,遂有此文
代码:
- 请求方法
//项目基于avue,searchChange为搜索促发事件,onLoad为页面首次或者被调用促发事件
//params为搜索参数,对象格式:{ }; done结束搜索方法
data(){
return{
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
}
},
methods:{
searchChange(params, done) {
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
onLoad(page, params = {}) {
this.loading = true;
//初始化搜索参数
let values = {
name: '',
sex: '',
idCard: '',
oldManType: '',
liveAddress: '',
}
// Object.assign(values, params))将searchChange传过来的参数和values合并
getList(page.currentPage, page.pageSize, Object.assign(values, params)).then(res => {
const data = res.data;
this.page.total = data.total;
this.data = data.records;
this.loading = false;
});
},
}
- 网络请求
export const getList = (current, size, params) => {
return request({
url: '/office/oldMan/list',
method: 'get',
params: {
...params,
current,
size,
}
})
}
Object.assign(values, params))实际上向getList方法传递一个对象: …params将合并后得对象逐个取出放到params里面:
params: {
current:xxx,
size:xxx,
name:xxx,
sex:xxx,
idCard: xxx,
oldManType:xxx,
liveAddress: xxx
}
问题:扩展运算符是不能遍历没有部署遍历器数据,怎么在…obj加上{}就可以使用了:{…obj}?
待补充
{…obj}属于深拷贝
版权声明:本文为m0_46581222原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。