always-helper
always-helper copied to clipboard
前端项目开发中,经常会用到一些工具函数的合集。
always-helper
前端项目开发中,经常会用到一些工具函数的合集。
前端项目开发中,总会碰到这一类问题,所以为了提高前端的开发效率,减少代码重复率,所以这里统一封装了这些方法。
⭐️ 特性
- [x] 使用 typescript 编写,提供更好的代码提示和类型检查。
- [x] 测试全覆盖,代码可用性得到保证。
- [x] 不重复建设,利用现有的优秀开源库开发一些函数(大项目中经常会用到的一些库,比如
lodash、dayjs、js-cookie等)。 - [x] 覆盖
日期格式化、url参数转换、浏览器类型判断、节流函数、字符串/数组处理、本地缓存、Cookie 增删改查、颜色转换、DOM 操作、随机数生成、金额转换等前端常用工具函数。
📦 开始
安装
# npm
npm install --save always-helper
# yarn
yarn add always-helper
使用
import {setCookie} from 'always-helper'
备注
- 如果使用了
Cookie相关函数,需要提前安装js-cookie - 如果使用了「日期相关」函数,需要提前安装
dayjs
API 文档
Cookie 相关
setCookie设置 cookiegetCookie获取 cookieremoveCookie删除 cookiecheckCookie检查浏览器是否支持 cookie
日期相关
today获取今天日期yestoday获取昨天日期beforeDay获取前 n 天日期currentWeek获取本周起止时间lastWeek获取上周起止时间nextWeek获取下周起止时间beforeWeek获取过去第 n 周的起止日期beforeDays获取过去 n 天的起止时间currentMonth获取本月起止时间lastMonth获取上个月的起止时间nextMonth获取下个月的起止时间beforeMonth获取过去 n 个月起止时间sofarYear获取今天至今的起止时间getDay获取星期几getMonth获取本月份getCurrentWeek获取今年第几周timeAgo格式化时间展示范围
样式相关
addClass元素添加类removeClass元素删除类hasClass判断元素是否存在某个类toggleClass元素切换类名replaceClass替换元素某个类为另一个类setStyle设置元素样式getStyle获取元素样式insertCss将 CSS 字符串插入到<head>中loadCss将 CSS 链接插入到<head>中
URL 相关
parseQueryString解析 URL 查询字符串stringifyQueryString对象转化为 URL 查询字符串
随机数相关
randomInt随机生成一个整数randomString随机生成一个字符串(包含大写、小写、数字)randomCnChar随机生成中文串randomColor随机生成颜色(16 进制)uuid生成一个 uuidrandomAvatar随机生成头像 avatar 链接,包含 http 或者 https 协议头
DOM 相关
fullscreen进入全屏/退出全屏copyElement2Clipboard复制 DOM 元素到剪贴板copyElementImage2Clipboard将 DOM 元素生成图片并复制到剪贴板downloadElementImage将 DOM 元素转化为图片并下载到本地inDarkMode将页面切换为暗黑模式inview判断一个 DOM 元素是否在可是区域内scrollTop将页面滚动到顶部scrollBottom将页面滚动到底部
颜色转换相关
hexToRgbHEX 格式转化为 RGB 格式rgbToHexRGB 格式转化为 HEX 格式
数字相关
fileSize字节单位转换commafy数字每三位增加逗号
正则相关
verifyIdCard身份证验证verifyEmail邮箱验证verifyCellNumber手机号验证verifyUrl网页地址验证
设备相关
getOS获取操作系统isAndroid是否为Android设备isIos是否为iOS设备isIpv4ipv4 检测isIpv6ipv6 检测isMobile是否为移动端isWeixin是否为微信内置浏览器打开
对象相关
objEmpty判断对象是否为空
⚙️ CHANGELOG
CHANGELOG
LICENSE
MIT
✈️ TODO
TODO
🚩 FAQ
- [Q] 为什么使用
dayjs作为时间处理工具?- 大多数项目在最开始启动的时候,可能都是使用
moment.js。但其无法与现代的Tree Shanking算法配合使用,导致打包后的体积非常大,同时最近moment.js官方已经宣布停止更新进入维护阶段,并推荐了其他的相似库,其中就包括dayjs。 dayjs本身非常轻量(2KB),功能上也不差,语法也非常友好,支持链式操作,同时兼容性也是非常优秀的。基于上面两个原因,所以选择了dayjs。
- 大多数项目在最开始启动的时候,可能都是使用
- [Q] 为什么使用
js-cookie作为 cookie 处理工具?js-cookie在 cookie 库中一枝独秀,有着非常好的影响力。同时js-ccokie非常轻量(< 1KB),我认为我们不需要重复建设。
- [Q] 有没有更好的随机数工具库?
- 推荐使用chancejs,但是仓库比较大