Varlet Vue3 组件库 | 2024 迟来的年终总结

6,261 阅读4分钟

写在前面

2024年在恍恍惚惚之间落下了帷幕,永远在感慨时间的稍纵即逝和当下的无可奈何。作者是2017年专科毕业的一名再普通不过的前端开发工程师。坐标无锡,同时也是 Varlet UI 的作者。在文本中,作者会分享 Varlet 的组织成员们这一年都折腾了一些什么事儿。

Varlet 3.0 发布

在2024年2月,我们发布了 Varlet UI 第三个 Major 版本,这个版本我们同时支持了两个版本的设计系统。在保证 Material Design 2 的功能稳定的前提下,也支持了 Material Design 3。同时支持两个设计系统不是一件容易的事情,开发新特性和维护工作充满了权衡和挑战。

image.png

组件能力增强

在社区同学们的帮助下,我们对部分组件的功能进行了一定的增强,同时也新增了一些组件,以下仅列举部分的典型更新。

  • 新增 AutoComplete 组件
  • 新增 Code 组件
  • 新增 Alert 组件
  • 新增 CountTo 组件
  • 新增 Switch 组件新的变体
  • 支持了 options 风格的组件配置 api,简化了组件使用
  • 支持了 MenuSelect 的级联模式
  • 支持了基于 Zod 的表单验证方式

Nuxt Module

为了拥抱 Nuxt, 我们的组织成员 xiaomo 开发了一个支撑 Varlet UINuxt Module,使开发者使用 Nuxt + Varlet UI 时能够得到更好的开发体验。

image.png

桌面端体验增强

Varlet UI 是一个移动端优先的组件库,在早期版本对桌面端的交互支持是有欠缺的。在组织成员 chouchouji 的主导下,针对所有的组件进行了桌面端的交互增强。补足了鼠标、键盘、tab 导航等交互,并且优化了许多的无障碍设计,使组件库在移动端、桌面端都有着不错的表现。

Unocss/Tailwind 原子化 CSS 体验增强

在工程中使用了原子化框架的用户总会产生一个问题,就是无法将组件的样式变量平滑的整合到工程变量中。我们为此开发了相关的预设,帮助用户更容易的引用组件库的样式变量。

image.png

开源了图标库构建工具

在 24 年中旬,我们对 Varlet UI 的图标库构建功能进行了抽离,并且总结成了一套适用于开源场景/企业内部的图标库构建工具链,更详细的内容可以参考这篇文章:快速构建企业自用/开源图标库

image.png

Rattail: 组件库剥离出的实用工具库

我们将组件库的实用工具函数抽离成了独立的仓库 Rattail,并且提供了更加完善的文档和单元测试。而且吸纳了更多的实用工具 (mitt、hash-sum...),这使我们日常工作的业务开发和其他的开源项目也因此受益良多。虽然它看起来很像 lodash,但是其定位的不同会使我们会倾向于使用更加实用、更加现代的工具集合,而不是 lodash 这样的函数式编程库。

image.png

eslint & prettier 预设开源

eslint v9 开始将扁平化配置(配置都在 eslint.config.js 中而不是 .eslintrc)作为了默认的配置方式。 受 antfu-eslint-config 的启发,我们开发了自己的 eslint 预设prettier 预设

不直接使用 antfu 的预设是因为我们更倾向于将代码格式化的工作交给 prettier,并且预设是有一定的主观性的,自己维护也会有更高的自由度。虽然之前我们也有类似的预设但却只服务于 Varlet UI,现在我们将它们独立并开源出来,希望可以帮助更多同学平滑的迁移 eslint v9,并且可以让更多的开源仓库收益。

varlet-release: 版本发布工具

varlet-releaseVarlet UI 所使用的版本发布工具,。与 eslint & prettier 预设开源的动机类似,我们将其独立开源了出来。它允许用户使用通过命令行交互的方式进行版本发布,并且支持与 githooks 集成检查 commit messagechangelog 生成等功能,开箱即用。

image.png

还有一些组织成员维护之余的作品

作者在其中起到了至关重要的打酱油的作用!

VSCode 别名管理插件: github.com/chouchouji/…
Vite 资源预加载插件: github.com/cszhjh/vite…

写在最后

总感觉一年匆匆过去什么都没做到位,一直被社区的同学们鼓励着往前走,再次感谢各位。前端这几年非常的不容易,但也无需过度焦虑。交流技术也好,无聊吹水也好,欢迎各位与我交流。同时也希望各位在 2025 年不费吹灰之力就能取得令人满意的成果。

个人 github: github.com/haoziqaq
varletjs 组织: github.com/varletjs/va…
varlet-ui: github.com/varletjs/va…