文章目录
- 前言
- 拖拽库
- 表格组件
- 框架:Vue3
- 包管理器:PNPM
- 脚手架:create-vue
- 状态管理:Pinia
- 路由:Vue Router
- 构建:Vite
- 调试:Vue DevTools
- 测试:Vitest / Cypress
- 静态站点生成器:VitePress
- 元框架:Nuxt
- 类型语言:TypeScript
- 工具函数(Hooks 库):Vueuse
- 代码格式化:Eslint / Prettier
- 语言支持:Vue - Official
- 国际化:vue-i18n
- Apollo/GraphQL 集成:apollo
- Firebase 集成:VueFire
- 样式:UnoCSS / Tailwind CSS
- UI组件库:Element UI / Ant Design Vue / Vant
- 桌面应用开发:Electron-Vite
- 跨端应用开发:uniapp
- 数据请求:Axios
- 可视化:Echarts
- Naive UI - 企业级组件库
- Vee-Validate - 表单验证方案
- VueRequest - 数据请求管理
- Vue Macros - 语法扩展工具
前言
经过 10 年的演进,Vue 已经构建了一个极为丰富且强大的生态系统,本文就来盘点 2025 年 Vue 生态工具组合!
拖拽库
其实 vue 的拖拽库已经断代很久了,上一个很火的是 vue-draggable,但是这个库很久没更新了,且只对 Vue2 支持的比较好
Github: https://github.com/SortableJS/Vue.Draggable
vue.draggable.next 基于 Sortable.js 的 Vue3 封装,源码展示了如何将传统库与现代响应式系统结合。重点研究其与 Transition 组件的集成方式,以及如何优化拖拽性能,
Github: https://github.com/SortableJS/vue.draggable.next
再推荐 vue3-dnd 这个库,对 Vue3 支持也比较好,且具备基本的拖拉拽功能
表格组件
表格组件其实很多 UI 组件库都具备,但是毕竟他们精力有限,所以很多表格组件的质量都比较一般
Vxe-table
老牌表格组件库了,功能超级多,没有做不到的,只有你想不到的
vTable
字节开源的表格组件库,底层用 Canvas 实现的,天然支持虚拟滚动,性能不错
Surely Vue
Antdv 自己研发的一款表格组件库,但是不开源需要收费,它的虚拟滚动做的很不错,跟其他表格都不一样
框架:Vue3
虽然 Vue2 很多项目在用,但是官方已经宣布不在维护 Vue2,所以新项目肯定首选 Vue3 来进行开发,组合式 API 开发起来比选项式 API 方便多了,而且 Vue3 的响应式实现也更加合理,对 typescript 的支持也更好,打包体积也更小,模板编译加入了静态节点提升的优化
包管理器:PNPM
在包管理器的选择上,首选 PNPM,相比于 NPM,它能解决很多问题,例如幽灵依赖、安装速度快、节省空间、天然支持 Monorepo
脚手架:create-vue
create-vue 是 Vue.js 官方推出的一个快速启动 Vue.js 项目的脚手架工具。它基于 Vite,为开发者提供了一种快速、便捷的方式来创建 Vue 项目模板,降低了项目的入门门槛。
Github: https://github.com/vuejs/create-vue
状态管理:Pinia
Pinia 是一个专为 Vue.js 设计的新一代状态管理库,它提供了更简单、更灵活的 API,并且完全支持 Vue 3。Pinia 的设计旨在提供一种直观的方式来管理 Vue.js 应用程序中的状态,使得状态管理变得更加简单和高效。
Pinia 的特点如下:
- 简洁的 API:Pinia 相比 Vuex 提供了更加简单的 API,移除了 Vuex 中的 mutation,所有状态变更都在 actions 中处理,这使得状态管理更加直观和统一。
- 组合式 API 风格:Pinia 完全兼容 Vue 3 的组合式 API,允许开发者以更加声明式的方式管理状态,这有助于提高代码的可读性和可维护性。
- 模块化:Pinia 抛弃了 Vuex 中的 modules 概念,每个 store 都是一个独立的模块,这使得状态管理更加清晰和灵活。
- TypeScript 支持:Pinia 提供了良好的 TypeScript 支持,允许开发者在开发过程中获得更好的类型推断和静态类型检查,从而减少运行时错误。
- 插件系统:Pinia 提供了插件系统,用于扩展和增强其功能。通过插件,开发者可以添加中间件、持久化存储、调试工具等来满足特定的需求。
Github: https://github.com/vuejs/pinia