之前在我的概念里,有好东西可以直接写一篇文章进行分享,最近才发现,文章都是零零散散的,大部分人都很难找到,或者说,就算之前有看过,当使用的时候,说不定也会忘记,所以就把在工作常用的一些基础功能,整理成一个`fdutils`工具库;
### 1. 项目
项目地址:[fe-utils](https://github.com/zhangyunling/fe-utils)
详细文档:https://zhangyunling.github.io/fe-utils/docs/#/
单元测试:https://zhangyunling.github.io/fe-utils/test/
2020-04-11号,使用ts重构完成;
### 2. 来说一说
工具库里的代码,大部分都使用了很久,这次整理出来,理论上也没有花费很多时间。
但既然是要发布到github和npm上,那有些基础的设施,还是要完善一下的;
所以,在这个项目里,包含了代码规范检查,单元测试,自动化生产readme的api列表等;
有了这些,至少可以保证,代码的质量和文档的实时性,目前还遗留的一部分的是:文档;
关于文档,我这里又一些考虑,jsdoc虽然可以生成一些简单的文档,我觉得可能满足不了我的要求,我希望文档中,会有一些常用的示例,可能包含很多示例,所以这个我现在暂时留空;
`typescript`暂时没有使用,因为当时给自己的期限是2019.5.14要发布,而4月份的工作还是很忙的,所以就暂时先没有使用(因为自己不熟悉);
### 3. 欢迎尝试
为了方便开发,我这边的单元测试,分别支持了浏览器和node的,所以可以通过以下的方式,来启动项目:
“`
npm run dev
“`
启动之后,可以通过`http://localhost:8080/`访问测试的首页,在首页会列举出所有的API,直接点击对于的API名称,就可以到该API的测试页面;
所以,这里建议:可以先把单元测试写好了,再进行功能开发,测试页面会自动刷新,可以实时看到自己的代码是否通过验证,方便测试也保证代码质量;
如果希望给整个项目跑一下单元测试,可以使用如下的命令:
“`
npm run test
“`
### 4. 现在还是第一版,当前支持的API如下:
– `isArray`: (v:`1.0.0`) 判断是否为数组类型
– `isBoolean`: (v:`1.0.0`) 判断是否为布尔值类型
– `isDate`: (v:`1.0.0`) 判断是否为Date类型
– `isError`: (v:`1.0.0`) 判断是否为Error对象
– `isFunction`: (v:`1.0.0`) 判断是否为数字类型
– `isLeapYear`: (v:`1.0.0`) 判断是否为闰年
– `isNumber`: (v:`1.0.0`) 判断是否为数字类型
– `isObject`: (v:`1.0.0`) 判断是否为对象类型
– `isRegExp`: (v:`1.0.0`) 判断是否为正则类型
– `isString`: (v:`1.0.0`) 判断是否为字符串类型
– `colorRandom`: (v:`1.0.0`) 生成一个随机的颜色
– `hexToRgb`: (v:`1.0.0`) 根据hex的值,生成rgb格式的值,支持hex8 -> rgba
– `rgbToHex`: (v:`1.0.0`) 根据rgb格式的值,生成hex格式的颜色值,支持rgba -> hex8
– `debounce`: (v:`1.0.0`) 函数防抖,只触发最后一次调用;
– `throttle`: (v:`1.0.0`) 函数节流,一定时间内,只执行一次回调函数
– `numberFormat`: (v:`1.0.0`) 把数字字符串进行分割,支持字符串类型的数字
– `deepClone`: (v:`1.0.0`) 深copy,如果不是对象,则直接返回
– `objectToString`: (v:`1.0.0`) 把规定格式的Object转换为String格式
– `xssDecode`: (v:`1.0.0`) 进行XSS编码
– `xssEncode`: (v:`1.0.0`) 进行XSS编码
– `stringToObject`: (v:`1.0.0`) 把规定格式的Str转换为Object格式
– `dateFormat`: (v:`1.0.0`) 转换为指定格式的时间
– `dateNature`: (v:`1.0.0`) 根据传入的日期,转换出一些指定的节日信息
– `preciseCountDownTimer`: (v:`1.0.0`) 倒计时的插件
### 5. 最后
会一直保持更新维护,欢迎大家使用,也欢迎大家提出一些意见,感谢阅读;