我中意的React解决方案

LflaxW.md.jpg

一些在我调查和实际生产中比较喜欢的解决方案

状态管理

Valtio

目前用的最多的解决方案. 用起来有些坑(主要是 this 相关的部分)但整体来说很好.

Helux

目前正在进行测试的方案. 优势在于属于 AIO 方案, 所以对于各种奇奇怪怪的用例都有支持. 是否喜欢这种大而全的解决方案就见仁见智了.

Mobx

备用方案,和 valtio 差不太多。问题在于必须使用 observer 包裹组件,而且兼容性不强

路由

react-router

不用多说,官方推荐。不是非常易用但是足够好用,也懒得折腾更多了,之前有段时间(大概是 5.0 左右?)对 hooks 的支持很差所以尝试了其他的解决方案,现在支持还不错就换回来了。

React Hook Router

这就是当初用过的方案,现在不再推荐了因为 react-router 已经很好了,而且这个作者不喜欢 TS 所以这方面的支持也不太好,而且很久没更新了。但作为一个小型 router 的实现代码是值得学习的。

CSS

emotionJS

目前在用的,除了 css props 我颇有微词以外,其他的部分都算完美,css-in-js保证了样式的可控性(我知道大部分时候用不到,但是用得到的时候还是很爽的),使用完整的 CSS/SCSS 语法而不是什么Tailwind黑科技。库很小而且泛用性很高。本质上这东西和styled是一家子所以代码也很容易迁移。平台支持广:虽然理论上这东西支持 RN 但属实没必要。

react-spring

这东西我本来想单独分个动效来说的,但是讲道理好像和 CSS 重叠的部分还是很广的,也就一并讲了。

很好用,虽然新的 api 有点反直觉但是能 get 到他们的设计思路所以我保留意见。实际上这个弹性库并不一定是用来给 css 的,你可以给任何你想加上可控曲线效果的地方用上。同样支持 RN,但没研究过。

2D

Pixi

新发现的玩具, 不同的地方在于使用了 WebGL 渲染所以性能非常的彳亍. 还没怎么用过回头再研究一下

Konva

比较复杂,这东西其实是新建了一个 react 实例然后挂载在你的组件树上,所以会有一些奇妙的小问题。但总的来说还是足够好用。暂时找不到比它更方便的 canvas 库了,或者说更进一步的需求建议用 flutter。

先写这么多,想起来什么再补充。


题图 https://twitter.com/kirizieeel/status/1495523468657397762

Licensed under CC BY-NC-SA 4.0
最后更新于 Feb 20, 2024 16:37 UTC
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计