工具库
Utils
1.Lodash
es 版:https://www.npmjs.com/package/lodash-es (@types/lodash-es)
- 遍历 array、object 和 string
- 对值进行操作和检测
- 创建符合功能的函数
2.underscore
带注释的源代码:https://underscorejs.org/docs/underscore-esm.html
- 函数式编程助手,不拓展任何内置对象
3.ramda
中文官网:https://ramda.cn/
- 不改变用户已有数据
- 柯里化
数据解析
1.query-string
解析和 stringify URL 查询字符串。
2.filesize
从数字(浮点数或整数)或字符串中获取可读文件大小字符串。
ts
import { filesize } from 'filesize'
filesize(10000) // 10 kB
3.numeral
格式化和操作数字。
实用库
1.classnames
在渲染函数中方便的条件性地应用类名。
2.uuid
生成 RFC4122 UUIDs in JavaScript。
3.nanoid
默认情况下,Nano ID 使用 URL 友好的符号(A-Za-z0-9_-)并返回一个 有 21 个字符(类似 UUID v4 的冲突概率)的 ID。
- 减少 size(但会增加冲突概率)冲突概率计算器js
nanoid(10) // => "IRFa-VaY2b"
加密
1.crypto-js
标准加密库。docs
- Hashing(哈希算法):MD5(非抗冲突)、SHA-1、SHA-2、SHA-3、RIPEMD-160
- HMAC(消息认证代码-基于哈希函数进行消息验证的机制):HmacMD5、HmacSHA1、HmacSHA256、HmacSHA512
- PBKDF2(基于密码的密钥派生函数)
- Ciphers(密码):AES、DES、Rabbit、RC4
2.md5
3.jsencrypt
RSA 加密。
原生 API 拓展
1.js-cookie
更方便简单的处理 cookie。
2.dayjs
轻量级的处理时间和日期的库,和 moment.js 类似。
3.moment
处理时间和日期的库。
4.screenfull
跨浏览器使用FullscreenAPI
5. scrollama
使用 IntersectionObserver 支持滚动事件进行滚动。(检测元素是否可见,或两元素是否相交)
事件
1.hammerjs
手势事件插件、体积小。识别由触摸、鼠标和指针事件做出的手势。
优化&其他
1. quicklink
加快打开链接的速度。