//使用
import commonFunc from './utils/commonFunc';
Vue.prototype.commonFunc = commonFunc;
this.commonFunc.intervalApi(this, this.getApiData(), 1250, true);
// 公共方法
let timer = null;
export default {
// 定时请求方法
// vm 组件实例
// func 需要执行的方法
// time 多久
// bool 是否需要清除定时器
intervalApi: function (vm, func, time, bool,param = []) {
func( ...param );
function timeFuc() {
return function walk() {
let timer = setTimeout(function () {
clearTimeout(timer);
func( ...param );
walk();
}, time);
if(bool){
// 1.在beforeDestroy()钩子里进行销毁,意味着在这个钩子里要能获取到定时器的实例,也就是说定时器的实例要在vue实例中,占内存
// 2.创建定时器的代码和清除定时器的代码通常是不在一块的,很容易出现写着写着忘记清除定时器,不易维护
// 而使用$once("hook:beforeDestroy",()=>{})就可以避免上面的两个问题
vm.$once('hook:beforeDestroy', () => {
clearTimeout(timer);
})
}
};
}
timeFuc()();
// const timer = setInterval(() => {
// func( ...param );
// }, time);
},
dataMin:function(value){
let min = 0;
if(value.min - 1000>0){
min = value.min - 1000
} else if(value.min - 500>0){
min = value.min - 500
} else if(value.min - 100>0){
min = value.min - 100
} else if(value.min - 10>0){
min = value.min - 10
} else if(value.min - 1>0){
min = value.min - 1
}
return min;
},
sizeSet:function(width,num){
let size = (width * ( num / 1120)).toFixed(5);
return size + 'px';
},
// 防抖
preventShake(fn, delay){
console.log('111111111111111111111111111');
if(timer){
clearTimeout(timer);
};
timer = setTimeout(fn, delay);
},
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。