useLodash
对 Lodash 进行了 ES 模块化和 Tree Shaking 支持。
为什么
虽然 2022 的今天, ES6+ 很多原生的实现已经非常简单,大部分情况下 不再需要使用 Lodash 了,但也并不反对继续使用它,因为它依然是一个非常优秀的工具库。
那为什么我还要集成进来呢?因为我发现,很多使用 Lodash 的同学都没有培养一个按需加载的优化习惯。
在我见过的项目里,几乎都是整包导入 Lodash ,而实际上可能只用到其中的一两个函数,例如 debounce
和 throttle
或者 cloneDeep
。
完整版的 Lodash 是非常大的,可能你压缩的十几张图片的大小,还没有一个 Lodash 包大(当前版本源包 1.41MB ,压缩后也有 500 多 KB ,而按需引入之后只有几 KB ,可点击 整包引入和按需加载的大小差距对比 查看测试报告)。
如何按需加载
本包已对 Lodash 做了 Tree Shaking 支持,无需再次安装 Lodash ,你只需要和其他 use 函数一样,遵循 Hooks 风格的导入和子方法使用。
- Example:
vue
<template>
<button @click="handleClick">
<span>Hello World</span>
</button>
</template>
<script setup lang="ts">
// 导入 Lodash
import { useLodash } from '@lunarxyz/core'
// 使用防抖函数
const { debounce } = useLodash()
const handleClick = debounce(() => {
console.log('debounce')
}, 500)
</script>
API 文档
支持 Lodash 的所有 API ,可以直接查看官方文档的使用说明。
官方最新文档: https://lodash.com/docs/
国内翻译文档: https://www.lodashjs.com/
当前集成版本
目前集成的 Lodash 版本号为 ^4.17.21
。
一般情况下,常用的方法都能够覆盖到,并且 Lodash 本身的版本更新也不是很频繁,如果在使用的过程中需要升级 Lodash 的版本,请联系本包的维护者 @程沛权 。