Next.jsで作ってるアプリにグローバルな状態管理を入れたいんだけど、今だと何を入れるのがいいんだろう?ググると皆Redux入れてるんだけど今想定している規模感だとちょっと重い気がしてるんだよな。
2021-03-30 22:50:35というかNext.jsがあんまりSPA的な使い方は想定していないのかな。そんなはずはないだろうけど、パパっと調べた感じHooksやSWR使ってますみたいな例が多い。
2021-03-30 22:52:36RecoilとかJotaiとかがあるよという話
@kamedon39 recoil、jotaiですか。さらっと調べた感じcontextベースなんですね。見た目シンプルでよさげですね。flux/reduxと違ってステートが分散されないかが気になります。
2021-03-31 09:54:15@snowcrush アーキテクチャ次第で、ある程度技術レベルがそろってるなら、双方向みとめちゃって、クリーンアーキテクチャとかでもよいかな。
2021-03-31 10:02:43@kamedon39 個人の趣味プロジェクトなんで選定は単純に僕の好みになりますねw アーキテクチャはReactなんでイベントソーシングでやりたいですね。他はあんまりこだわり無いです。 Flux/Reduxで作ってたら自然にクリーンアーキテクチャっぽい依存性の入れ子が出来る気がしますが、何か特別な設計いりますかね?
2021-03-31 10:19:22@snowcrush Reduxだからっていうより、何でもかんでも突っ込んで、いろんなページで、かんじがらめになり、やりたいui操作ができないのをみちゃったので、ステートとアクションの設計の熟練度がまぁまぁいるなぁって思います。
2021-03-31 10:23:27@kamedon39 それは分かりますw 自分が最初にRedux微妙だなあって書いたのもそういう経験から来ているので。 ただ今はhooksベースで大分きれいになってるっぽいので、勉強がてらひとまずRedux試してみようと思ってます。
2021-03-31 10:27:02Reduxのサイズ感とかHooksとかの話
@snowcrush 本来ローカルステートで管理したほうがよいものも、グローバル管理になりがちで、細かいuiの制御や、画面遷移が難しくなりがちなので、Reduxを上手に料理するのが難しい印象。
2021-03-31 10:17:57@kamedon39 その辺はhooks使えばいいかなと思いました。最近のreact-reduxはAPIがhooksベースで(僕が使っていた当時と比べると)随分きれいになってますね。
2021-03-31 10:20:34@snowcrush hooksつかってもステートとアクションの設計の話なので問題は解決してなくて。とりあえずReduxより気軽なものとして、Recoilとかをあげました。
2021-03-31 10:29:18@kamedon39 ローカルステートならhooksで管理できるのでは?アクションはコンポーネントの外に投げるときに必要になるのでうちで閉じているなら関係ないように思います。 Contextとかが入ってくるとRecoilのようなライブラリが欲しくなるのは分かります。
2021-03-31 10:39:56@kamedon39 あー、一つ前のツイートで書いたことの前半はreact-reduxのhooksAPIを使えばグローバル管理が前よりきれいになるという話で、後半はhooks単体で使えばローカルステートの管理はそこで閉じられますよねという話です。ややこしくてすみません。
2021-03-31 10:41:50@kamedon39 前半と後半を逆に書いてしまったw twitter.com/snowcrush/stat… 前半はローカルステート管理の話、後半がグローバルステート管理の話です。
2021-03-31 10:43:09今どきはGraphQL系が熱いのかな?という話
@snowcrush 今年のアンケート結果だとこんな感じでした 2020.stateofjs.com/en-US/technolo…
2021-03-31 10:48:05@snowcrush 上がってるツール粒度はあれなんだけど、Reduxは定番で新興がFacebookが作ってるRecoilなどですね。
2021-03-31 10:49:57@kamedon39 やっぱGraphQLが人気なんですねー。サーバサイドからの受け取りが主眼になってきているのかな。 今作ってるやつはPWAっぽいやつで、クライアントサイドでデータ管理が閉じているのであんまりバックエンドには依存しない作りになっていますがAPI作るならGraphQLでやりたいですね
2021-03-31 10:54:14