vue项目中使用class类来封装一些功能函数并进行使用的js文件
情景: vue脚手架搭建的项目中, 例如几个表格页面里面的表格都带有时间数据,这个时间数据返回过来的是时间戳,需要进行转换,然后有些数据重复了,需要去重等,这时我们就可以单独建立一个js文件,用于处理这些需求。
实现: 可以在 src 目录下 手动建立一个 tools 文件夹,专门用来存放我们自定义的 处理相关功能的 js 文件。在这个tools文件夹里面建立一个 todo.js 代码如下:
todo.js:
class StringTools {
// 时间戳处理
static dateFormat (date, fmt = 'yyyy-MM-dd hh:mm:ss') { // author: meizz
if (typeof date === 'string') date = new Date(date);
if (this.isInvalidDate(date)) return "";
// 避免错误的时间,生成了1970年数据
if (date.getFullYear() === 1970) return "";
// 毫秒
if (fmt === 'mill') {
return date.getTime() + '';
}
// 秒
if (fmt === 'second') {
return parseInt(date.getTime() / 1000 + '') + '';
}
var o = {
"M+": date.getMonth() + 1, // 月份
"d+": date.getDate(), // 日
"h+": date.getHours(), // 小时
"m+": date.getMinutes(), // 分
"s+": date.getSeconds(), // 秒
"q+": Math.floor((date.getMonth() + 3) / 3), // 季度
"S": date.getMilliseconds() // 毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o) { if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); }
return fmt;
}
// 数组对象去重
static toDeduplication(list, key, data__ = false) {
let theMap = new Map();
for (let item of list) {
if (data__) {
theMap.set(item.data__[key], item);
} else {
theMap.set(item[key], item);
}
}
list = [...theMap.values()];
return list;
}
}
export default StringTools;
使用: 在 vue 文件里面 进行
import StringTools from '../../../tools/StringTools';
然后直接 StringTools.方法 就行了。
浙公网安备 33010602011771号