扩展运算符(spread)是三个点(
...
)。 该运算符主要用于函数调用,它好比 rest参数 的逆运算,将一个数组转为用逗号分隔的参数序列。
函数的扩展:
剩余语法 用于解构数组和对象。
ES6 引入 rest 参数(形式为
...变量名
),用于获取函数的多余参数,这样就不需要使用arguments
对象了。rest 参数搭配的变量是一个数组,该变量将多余的参数放入数组中。从某种意义上说,剩余语法与展开语法是相反的:展开语法将数组展开为其中的各个元素,而剩余语法则是将多个元素收集起来并“凝聚”为单个元素。
在完成 搜索栏查询表格列表 功能时,获取列表数据需要传入参数:姓名、身份证号、所在区域、状态、开始时间、结束时间。
const { personName, personId, regionCode, status, measureRange } = this.searchParams
这时如果一个一个传略显冗余。
因此将所有参数定义在searchParams中。声明时:
data() {
return {
searchParams: { ...searchParams },
page: {
pageSize: 10,
pageNo: 1,
},
}
},
获取时:
getParams() {
const { measureRange, ...serch } = this.searchParams
const params = {
...serch,
...this.page,
}
if (measureRange) {
const [start, end] = measureRange
params.startTime = moment(start).format('yyyy/MM/DD')
params.endTime = moment(end).format('yyyy/MM/DD')
}
return params
},
...serch 则是排除前面的元素后的序列
因为measureRange需要再处理,因此要把该参数取出
调用时:
getTableData() {
const params = this.getParams()
api.getData(params).then(res => {
this.tableData = res.data || []
})
},