2021年 React项目推荐的和应该放弃的技术方案

13,492 阅读3分钟

包管理工具 pnpm

pnpm内置支持了单仓多包,创建了一个非平铺的 node_modules,因此代码无法访问任意包,所有的文件都是基于软连接访问,兼容npm指令,上手容易,如果你会使用npm,那就也会使用pnpm。

放弃

2021年了,可以考虑放弃npmyarn了。

构建工具 Vite

现在最火的构建工具当然是vite,它基于原生 ES 模块,跳过所谓打包的概念,超快的模块热更新机制(HMR),丝滑的开发体验让你再也不想碰某webP*。

放弃

webpack没有那么容易放弃,不过也可以提上日程了。

CSS方案 Tailwind CSS

Tailwind CSS 是这两年前端工程师们最想尝试的技术之一,谁用谁知道,原子理念的css方案,表现力很强的语义化类型,处处体现着优雅,FaceBook使用Tailwind CSS重构后,节省了接近70%的css代码,威力惊人,同事再也不同担心css类命名了。注:项目越大,Tailwind CSS节省的css代码越多。

放弃

放弃lesssass之类的预处理工具吧,CSS预处理工具已经完成历史使命,现在已经是沉重的性能负担。

状态管理

推荐做法是 React Query + jotai,React Query做接口状态管理,jotai做本地状态管理

React Query

React Query使React应用中的服务端状态获取、缓存、同步和更新变得非常简单,提供了开箱即用的状态获取,分页获取,无限获取,及滚动恢复等功能,大大减少了我们状态管理逻辑。ReactQuery 将我们所有的服务端状态维护在全局,并配合它的缓存策略来执行数据的存储和更新。借助于这样的特性,我们就可以将所有跟服务端进行交互的数据从类似于 Redux 这样的状态管理工具中剥离,而全部交给 ReactQuery 来管理。

jotai

jotai 就是本地状态管理的版本答案。

放弃

  • Redux模版语法一大堆,虽然有一些辅助工具,但是还是麻烦,ts支持也不友好,让前端变成了一份记忆性工作,不优雅。
  • MobX 响应式工作方式,和React单向数据流理念相悖,不推荐。
  • zustand 和jotai 同一个作者,jotai更简单

移动端组件库 zarm

React生态圈很神奇的一点,各种组件库层出不穷,唯独移动端组件库少之又少,以前供大家只有antd-Mobile,现在多了一个不错的移动端组件库选择,众安做的zarm,组件比较丰富,使用简单,开发者响应也很快,很有前途的一个组件库。重点支持在vite中使用。

放弃

Antd-Mobile 四年没更新了,很多理念都老了,可以考虑放弃了。

rem方案

不要修改根字体大小

不要修改根字体大小

不要修改根字体大小

很多人会在页面初始化时修改根字体大小,然后全部用rem布局,还自以为挺聪明,这是阿里给国内前端带来的恶习,看看阿里系产品在iPad上的糟糕表现,就知道这个方案有多么糟糕。

更重要的是修改完根字体大小对视障人群非常不友好,如果用户将浏览器字体设为很大,你为了还原设计稿再给改回去,在手机上是美观了,用户也看不见了,没有一点技术人对于社会的担当。