vue 3集成lodash或day.js应按需引入、避免全局挂载:lodash推荐lodash-es配合tree-shaking,按需导入debounce等函数并注意响应式数据处理;day.js需显式引入relativetime等插件,封装usedateformatter等组合式函数更佳。

Vue 3 项目集成 Lodash 或 Day.js 很直接,关键在安装方式、引入粒度和响应式兼容性处理。不建议全量挂载到全局,按需引入 + 组合式 API 配合使用更轻量、更可控。
Lodash 集成:推荐按需引入 + Composition API
全量引入 lodash 会显著增大包体积(约 70KB+),而多数项目只用到几个函数。建议使用 lodash-es(ES 模块版本),支持 Tree-shaking:
- 安装命令:
npm install lodash-es(无需@types/lodash,lodash-es自带类型) - 组件内按需导入,例如:
import { debounce, cloneDeep, uniqBy, orderBy } from 'lodash-es' - 防抖/节流要配合生命周期清理,避免内存泄漏:
在onUnmounted中取消 throttle/debounce 的 pending 调用,或用onBeforeUnmount卸载事件监听 - 处理响应式数据时注意:不要直接对
ref或reactive对象调用cloneDeep后再赋值——应先unref或解构取值,再深克隆,否则可能丢失响应性
Day.js 集成:轻量日期处理,支持插件与本地化
Day.js 体积仅约 2KB,比 Moment.js 更适合 Vue 3 项目。它默认不包含相对时间、多语言等能力,需显式引入插件:
- 安装:
npm install dayjs - 基础用法(组件内):
import dayjs from 'dayjs';<br>const formatted = dayjs('2025-03-15').format('YYYY年MM月DD日'); - 启用常用插件(如相对时间、中文 locale):
import relativeTime from 'dayjs/plugin/relativeTime';<br>import localizedFormat from 'dayjs/plugin/localizedFormat';<br>import 'dayjs/locale/zh-cn';<br>dayjs.extend(relativeTime);<br>dayjs.extend(localizedFormat);<br>dayjs.locale('zh-cn'); - 不建议全局挂载
$dayjs到app.config.globalProperties——组合式 API 中直接 import 更清晰;若需复用,可封装为自定义 Hook,例如useDateFormatter()
其他实用工具库的集成共性
像 vue-use(Composition API 工具集)、qs(URL 序列化)、js-cookie 等,集成逻辑高度一致:
- 统一用
npm install xxx安装 - 优先查文档确认是否支持 ESM 和 TypeScript(2026 年主流库基本都已原生支持)
- 避免在
setup()外部或script setup顶层执行副作用(如直接调用cookie.set),应包裹在onMounted或事件回调中 - 涉及 DOM 操作或浏览器 API 的库(如
screenfull),务必加if (typeof window !== 'undefined')判断,防止 SSR 报错
集成不是越“全”越好,而是越“准”越稳。选对引入方式、避开响应式陷阱、控制副作用边界,就能把工具库真正变成提效杠杆。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











