⭐️ Vite 初体验及感受

2021-05-31

今天尝试了下 Vite,用它提供的案例来构建一款 React 应用的脚手架。它基于 RollUp,这个也是我此前用 Svelte 框架时所使用的默认打包工具。Vite 的优点在于 Dev 启动很快,热更新迅速,它分离了依赖库和用户编写的代码,因为在绝大多数情况下,前者几乎无需反复构建。

我这个搭配 Vite 的新项目同时使用的有 React + TypeScript + Material UI,其中 Material UI 和 Antd 两者可谓是“竞争激烈”啊。

Material 的组件相较于 Antd 较为平庸,但是提供了很高的定制模块(但读文档的成本和快速实现难度也就高了),使用其内置的 makeStyles 可以使用类似 Less 的语法编写(覆盖)组件样式。也是作用域隔离,属于 CSS in JS,不会影响到其他相同组件。

Material UI 的优势是外观,Antd 在 UI 方面是弱项,很难二次高度定制除了颜色以外的东西。后台的业务操作逻辑较多,Material UI 内置的组件很难快速实现业务,为了使页面引入模块少量清晰,只能自己做二次封装,且部分功能需要完全自己编写,无法依赖于 Material UI。我认为还是应当结合项目实际情况做决定较为合理。

我个人主张的做法比较中立,既然用 Material UI 想要体现的是设计感,那还不如就自己做一套设计感,直接用 Less 或 Tailwind 实现界面框架,Antd 的组件去做业务逻辑,不使用 Antd 的界面组件去做界面。这个是目前来说,实现成本较低,库依赖少,业务输出较快的折中做法。

毕竟前端 UI 框架是业务逻辑主要涉及的地方,更换成本高。这也就是为什么 DA 这个项目至今还有很多地方在使用 Shopify 的 Polaris 框架。

关于构建器 Vite,虽然它还比较新颖,可能会有坑,但构建工具毕竟只是项目的其中一环,如果 Vite 实际表现仍有欠缺,依然可以以较低成本迁移成 CRA。

你可能会问,NextJS 不是挺好的么,为什么要用 CRA?不得不说 NextJS 确实是个很优秀的框架,但是它更适合于需要 SSR 的环境下(门户这种),后台我还是觉得 CSR 比较合适。当然 TypeScript 还是得有的,一个好的 TS 项目,确实可以很好的做成前端版本的 API 文档。

阵雨 一般
概览页 时间轴
奇趣音乐盒 技术源于 Kico Player
Emmm,这里是歌词君