前端常用依赖归纳【vueuse\lodash-es\dayjs\bignumber】

目录

  • vueuse
  • lodash-es
  • dayjs
  • bignumber.js
    • 描述
    • 引入
    • 常用函数
    • 详尽函数
      • [absoluteValue && abs() 取绝对值](#absoluteValue && abs() 取绝对值)
      • [comparedTo 比较大小](#comparedTo 比较大小)
      • [isEqualTo 比较是否相等](#isEqualTo 比较是否相等)
      • [decimalPlaces && dp(num, rm) 保留小数位](#decimalPlaces && dp(num, rm) 保留小数位)
      • [dividedBy && div(num, base) 除](#dividedBy && div(num, base) 除)
      • [dividedToIntegerBy && idiv(num, base) 整除](#dividedToIntegerBy && idiv(num, base) 整除)
      • [exponentiatedBy && pow(n) 指数运算](#exponentiatedBy && pow(n) 指数运算)
      • [integerValue(rm) 取整数](#integerValue(rm) 取整数)
      • [isFinite() 判断 Infinity](#isFinite() 判断 Infinity)
      • [isGreaterThan && gt(num, base) 判断是否更大](#isGreaterThan && gt(num, base) 判断是否更大)
      • [isGreaterThanOrEqualTo && gte(num, base) 判断是否大于等于](#isGreaterThanOrEqualTo && gte(num, base) 判断是否大于等于)
      • [isInteger() 判断是否是整数](#isInteger() 判断是否是整数)
      • [isLessThan && lt(num, base) 判断是否小于](#isLessThan && lt(num, base) 判断是否小于)
      • [isLessThanOrEqualTo && lte(num, base) 判断是否小于等于](#isLessThanOrEqualTo && lte(num, base) 判断是否小于等于)
      • [isNaN() 判断是否是 NaN](#isNaN() 判断是否是 NaN)
      • [isNegative() 判断是否是负数](#isNegative() 判断是否是负数)
      • [isPositive() 判断是否是正数](#isPositive() 判断是否是正数)
      • [isZero 判断是否是 0](#isZero 判断是否是 0)
      • [minus(num, base) 减法运算](#minus(num, base) 减法运算)
      • [modulo && mod(num, base) 取余](#modulo && mod(num, base) 取余)
      • [multipliedBy && times(num, base) 乘法运算](#multipliedBy && times(num, base) 乘法运算)
      • [negated() 取负值](#negated() 取负值)
      • [plus() 加法运算](#plus() 加法运算)
      • [precision() && sd() 保留有效位数](#precision() && sd() 保留有效位数)
      • [shiftedBy(n) 小数点移位](#shiftedBy(n) 小数点移位)
      • [squareRoot() && sqrt() 开根号](#squareRoot() && sqrt() 开根号)
      • [toExponential() 科学计数法](#toExponential() 科学计数法)
      • [toFixed(dp, rm) 保留小数位](#toFixed(dp, rm) 保留小数位)
      • [toFormat(dp, rm, format) 数据格式化](#toFormat(dp, rm, format) 数据格式化)
      • [toFraction(max) 小数转分数](#toFraction(max) 小数转分数)
      • [toJSON() 转换为字符串](#toJSON() 转换为字符串)
      • [toNumber() 转换为数字](#toNumber() 转换为数字)
      • [toPrecision() 保留精度](#toPrecision() 保留精度)
      • [toString() 转换为字符串](#toString() 转换为字符串)
      • [valueOf() 转换为字符串](#valueOf() 转换为字符串)
    • 详尽文档

vueuse

描述

  • 基于 Vue Composition API 的实用函数集合,为 Vue 3/2 提供常见状态、事件与交互的封装,支持 Tree Shaking 与 SSR。

引入

  • 安装:npm i @vueuse/core
  • 使用:
js 复制代码
import { useMouse, useDark, useToggle, useLocalStorage } from '@vueuse/core'

const { x, y } = useMouse()
const isDark = useDark()
const toggleDark = useToggle(isDark)
const count = useLocalStorage('count', 0)
// x.value // 示例:120
// y.value // 示例:240
// isDark.value // 示例:false
// toggleDark() // 示例:返回 true,并切换 isDark.value
// count.value // 初始 0,更新后示例:1

常用函数

  • useMouse 获取鼠标坐标
  • useWindowSize 监听窗口尺寸
  • useDark 暗色模式检测
  • useToggle 布尔值切换
  • useLocalStorage 本地存储同步
  • useDebounce 防抖
  • useThrottle 节流
  • useFetch 轻量请求
  • useIntervalFn 定时器
  • useEventListener 事件监听
js 复制代码
import { useWindowSize, useDebounce, useFetch } from '@vueuse/core'

const { width, height } = useWindowSize()
// width.value // 示例:1920
// height.value // 示例:1080

const debounced = useDebounce(() => doSomething(), 300)
// typeof debounced // 'function'

const { data } = await useFetch('https://api.example.com/items').json()
// Array.isArray(data.value) // 示例:true

详尽文档

  • https://vueuse.nodejs.cn/
  • https://vueuse.org/

lodash-es

描述

  • Lodash 的 ES Modules 版本,提供函数式工具方法,支持按需加载与 Tree Shaking。

引入

  • 安装:npm i lodash-es
  • 使用:
js 复制代码
import { debounce, throttle, cloneDeep, merge, get, set, uniqBy, groupBy, sortBy } from 'lodash-es'

const fn = debounce(() => {}, 300)
// typeof fn // 'function'
const arr = uniqBy([{ id: 1 }, { id: 1 }], 'id')
// arr // [{ id: 1 }]
const obj = merge({ a: 1 }, { b: 2 })
// obj // { a: 1, b: 2 }
const v = get({ a: { b: 3 } }, 'a.b')
// v // 3
const o = set({}, 'a.b', 3)
// o // { a: { b: 3 } }
const grouped = groupBy([{ type: 'a' }, { type: 'b' }], 'type')
// grouped // { a: [{ type: 'a' }], b: [{ type: 'b' }] }
const sorted = sortBy([{ n: 3 }, { n: 1 }, { n: 2 }], 'n')
// sorted // [{ n: 1 }, { n: 2 }, { n: 3 }]

常用函数

  • debouncethrottle 控制调用频率
  • cloneDeep 深拷贝
  • merge 合并对象
  • getset 安全读写
  • omitpick 字段过滤
  • uniquniqBy 去重
  • groupBy 分组
  • sortBy 排序

详尽文档

  • https://lodash.com/docs/

dayjs

描述

  • 轻量日期库,链式 API,兼容 Moment 用法,体积小、扩展丰富。

引入

  • 安装:npm i dayjs
  • 使用:
js 复制代码
import dayjs from 'dayjs'
import relativeTime from 'dayjs/plugin/relativeTime'
import utc from 'dayjs/plugin/utc'
import timezone from 'dayjs/plugin/timezone'

dayjs.extend(relativeTime)
dayjs.extend(utc)
dayjs.extend(timezone)

const now = dayjs()
const formatted = now.format('YYYY-MM-DD HH:mm:ss')
// formatted // 示例:'2025-12-15 10:23:45'
const nextWeek = now.add(7, 'day')
const diffDays = nextWeek.diff(now, 'day')
// diffDays // 7
const isBefore = dayjs('2025-01-01').isBefore('2025-12-31')
// isBefore // true
const start = dayjs().startOf('month')
// start.format('YYYY-MM-DD HH:mm:ss') // 示例:'2025-12-01 00:00:00'
const end = dayjs().endOf('month')
// end.format('YYYY-MM-DD HH:mm:ss') // 示例:'2025-12-31 23:59:59'
const inTZ = dayjs().tz('Asia/Shanghai')
// inTZ.format('YYYY-MM-DD HH:mm') // 示例:'2025-12-15 18:23'

常用函数

  • formataddsubtractdiffisBeforeisAfterisSamestartOfendOfunixtoDate

详尽文档

  • https://day.js.org/

bignumber.js

描述

  • 任意精度的十进制与非十进制运算库,避免 JS 浮点误差,支持链式调用与多种格式化。

引入

  • 安装:npm i bignumber.js
  • 使用:
js 复制代码
import BigNumber from 'bignumber.js'

BigNumber.set({ DECIMAL_PLACES: 20, ROUNDING_MODE: BigNumber.ROUND_HALF_UP })

const a = new BigNumber('0.1')
const b = new BigNumber('0.2')
const sum = a.plus(b)
// sum.toString() // '0.3'
const product = a.times(b)
// product.toString() // '0.02'
const quotient = a.dividedBy(b)
// quotient.toString() // '0.5'
const difference = b.minus(a)
// difference.toString() // '0.1'

常用函数

  • plus()
  • minus(num, base)
  • times(num, base)
  • dividedBy(num, base)div(num, base)

详尽函数

absoluteValue && abs() 取绝对值

js 复制代码
new BigNumber('-5').absoluteValue() // '5'
new BigNumber('-5').abs() // '5'

comparedTo 比较大小

js 复制代码
new BigNumber(2).comparedTo(3) // -1

isEqualTo 比较是否相等

js 复制代码
new BigNumber(2).isEqualTo(2) // true

decimalPlaces && dp(num, rm) 保留小数位

js 复制代码
new BigNumber('1.2345').decimalPlaces(2) // '1.23'
new BigNumber('1.2345').dp(2) // '1.23'

dividedBy && div(num, base) 除

js 复制代码
new BigNumber(5).dividedBy(2) // '2.5'
new BigNumber(5).div(2) // '2.5'

dividedToIntegerBy && idiv(num, base) 整除

js 复制代码
new BigNumber(5).dividedToIntegerBy(2) // '2'
new BigNumber(5).idiv(2) // '2'

exponentiatedBy && pow(n) 指数运算

js 复制代码
new BigNumber(3).exponentiatedBy(2) // '9'
new BigNumber(3).pow(2) // '9'

integerValue(rm) 取整数

js 复制代码
new BigNumber('12.7').integerValue() // '13'

isFinite() 判断 Infinity

js 复制代码
new BigNumber('Infinity').isFinite() // false

isGreaterThan && gt(num, base) 判断是否更大

js 复制代码
new BigNumber(3).isGreaterThan(2) // true
new BigNumber(3).gt(2) // true

isGreaterThanOrEqualTo && gte(num, base) 判断是否大于等于

js 复制代码
new BigNumber(3).isGreaterThanOrEqualTo(3) // true
new BigNumber(3).gte(3) // true

isInteger() 判断是否是整数

js 复制代码
new BigNumber('12').isInteger() // true

isLessThan && lt(num, base) 判断是否小于

js 复制代码
new BigNumber(2).isLessThan(3) // true
new BigNumber(2).lt(3) // true

isLessThanOrEqualTo && lte(num, base) 判断是否小于等于

js 复制代码
new BigNumber(2).isLessThanOrEqualTo(2) // true
new BigNumber(2).lte(2) // true

isNaN() 判断是否是 NaN

js 复制代码
new BigNumber('not-a-number').isNaN() // true

isNegative() 判断是否是负数

js 复制代码
new BigNumber('-1').isNegative() // true

isPositive() 判断是否是正数

js 复制代码
new BigNumber('1').isPositive() // true

isZero 判断是否是 0

js 复制代码
new BigNumber('0').isZero() // true

minus(num, base) 减法运算

js 复制代码
new BigNumber(5).minus(2) // '3'

modulo && mod(num, base) 取余

js 复制代码
new BigNumber(5).modulo(2) // '1'
new BigNumber(5).mod(2) // '1'

multipliedBy && times(num, base) 乘法运算

js 复制代码
new BigNumber(2).multipliedBy(3) // '6'
new BigNumber(2).times(3) // '6'

negated() 取负值

js 复制代码
new BigNumber(5).negated() // '-5'

plus() 加法运算

js 复制代码
new BigNumber(2).plus(3) // '5'

precision() && sd() 保留有效位数

js 复制代码
new BigNumber('123.4500').precision() // 5
new BigNumber('123.4500').sd() // 5

shiftedBy(n) 小数点移位

js 复制代码
new BigNumber('1.23').shiftedBy(2) // '123'

squareRoot() && sqrt() 开根号

js 复制代码
new BigNumber(9).squareRoot() // '3'
new BigNumber(9).sqrt() // '3'

toExponential() 科学计数法

js 复制代码
new BigNumber(255.5).toExponential(5) // '2.55500e+2'

toFixed(dp, rm) 保留小数位

js 复制代码
new BigNumber(255.5).toFixed(2) // '255.50'

toFormat(dp, rm, format) 数据格式化

js 复制代码
new BigNumber('12345.6789').toFormat(2) // '12,345.68'

toFraction(max) 小数转分数

js 复制代码
new BigNumber('0.125').toFraction(10) // ['1', '8']

toJSON() 转换为字符串

js 复制代码
new BigNumber('1.23').toJSON() // '1.23'

toNumber() 转换为数字

js 复制代码
new BigNumber('1.23').toNumber() // 1.23

toPrecision() 保留精度

js 复制代码
new BigNumber(255.5).toPrecision(5) // '255.50'

toString() 转换为字符串

js 复制代码
new BigNumber('1.23').toString() // '1.23'

valueOf() 转换为字符串

js 复制代码
new BigNumber('1.23').valueOf() // '1.23'

详尽文档

  • https://mikemcl.github.io/bignumber.js/
  • https://github.com/MikeMcl/bignumber.js
相关推荐
永远不会出bug6 分钟前
flink是什么东西
大数据·flink
小马_xiaoen12 分钟前
Vue3 + TS 实现长按指令 v-longPress:优雅解决移动端/PC端长按交互需求
前端·javascript·vue.js·typescript
万岳软件开发小城17 分钟前
2026医疗数字化趋势:互联网医院系统源码与智慧医院APP全面爆发
大数据·人工智能·互联网医院系统源码·互联网医院app开发·互联网医院小程序·医院软件开发
艺杯羹21 分钟前
Git入门基础:从概念到安装的完整指南
git·elasticsearch·开发工具·版本控制·git入门·代码托管
147API24 分钟前
改名后的24小时:npm 包抢注如何劫持开源项目供应链
前端·npm·node.js
ziqi52226 分钟前
第二十二天笔记
前端·chrome·笔记
鹤归时起雾.27 分钟前
react一阶段学习
前端·学习·react.js
2301_7806698632 分钟前
HTML-CSS-常见标签和样式(标题的排版、标题的样式、选择器、正文的排版、正文的样式、整体布局、盒子模型)
前端·css·html·javaweb
福客AI智能客服38 分钟前
推理赋能售后:AI淘宝客服与电商智能客服破解复杂问题困局
大数据·人工智能·机器人
mseaspring41 分钟前
一款高颜值SSH终端工具!基于Electron+Vue3开发,开源免费还好用
运维·前端·javascript·electron·ssh