当前位置: 首页 > Web前端 > vue.js

vuejs使用sort和filters对数组重新排序

时间:2023-03-31 20:50:07 vue.js

问题描述vue项目中使用filters封装数组排序的方法,有概率会出现:问题分析//function:usemomenttoconvertdatesintotimestamps,使用数组的排序方法对过滤器进行排序:{sortList:function(v){returnv.sort(function(a,b){returnmoment(b.startTime).unix()-moment(a.startTime).unix()})}},vue中对数组的sort方法的操作会导致监听到数据变化,数据变化后会触发filters中的filter重新计算,导致这个过程重复执行,爆出错误。解决方法是通过数组的slice方法对原数组进行浅拷贝,在不改变原数组触发数据响应的情况下操作新数组。filters:{sortList:function(v){returnv.slice().sort(function(a,b){returnmoment(b.startTime).unix()-moment(a.startTime).unix()})}},