はじめに
Reactでちょっとしたシステムを作ってるのですが、状態管理とそれに伴う描画が混とんとしてきたので、もう一度改めて勉強しなおそうと思いました。
結果的に、タイトル通り、Recoilは開発が停止していたということに気づいて使用をやめたのですが、その経緯の個人的な記録、ブログです。
経緯
1. 状態管理を本で復習
まず以前買った、React 実践入門をもう一度開いてみてました。2023年10月発売の本。
状態管理ライブラリは、ReduxとRecoilが有名だけど、本の中ではRecoilを使ったサンプル。
2. どうしてもピンとこない
get
プロパティにget
関数を渡すRecoil、ネーミングルールどうなってんのとか文句を言いながら模索していましたが、どうしてもselector
でのset
の使い方がピンとこなくていろいろ探ってました。本を(TypeScriptに書き換えながら)写経すると、エラーになるんだけど、根本的にわかってないから、デバッグできない。
わからないのは、私の技術力不足なので仕方ないです。Recoilは何にも悪くない。ググって勉強するしかない。
3. ネット上の状況を調べてみた
それにしてもどうも、Recoilは日本語のブログが少ない。上っ面なselector
のget
まではあるんだけど、set
の情報が少なすぎる。Udemyの講座も日本語はなさそうでした。Reduxはたくさんあります。
ということで、人気がないのかなぁと思ってGoogleトレンドを見てみると、Reduxのほうが人気だけど、そうは言ってもある程度はありそう。このグラフとネットの情報量の比率が、合ってない気がしました。
ちなみに上は日本。
もしやアメリカでは・・・?
なるほど!Recoilはfacebook(Meta)によって開発されているとのことなので、アメリカでは人気なのかー英語しか情報がないのかー。
4. 本家に行くしかない
ということで、日本語のブログはあきらめて、本家のチュートリアルとか英語圏のブログとか探ろうと思いました。
公式ホームページのチュートリアルをやってみたけど、私がピンとこなかったselector
のset
の話はまだ出てこないです。
気分転換に、ホームページgithubを除いてみたら・・・あれ?更新日が、year単位しかない。最終commitは、1年前だ!
何度か調べても同じ。
ちなみに数少ない日本語のブログの中で、ちょいちょい「facebookexperimentalだから注意ね」って書いてありました。facebookの実験用のアカウントということですね。まさに実験して途中でやめたか。
5. 私の中でもRecoil停止
ということで、私も、Recoilの使用はやめました。
機能がUpdateされなくてもちゃんと理解すれば動作はするんだろうけど、バグフィックスがされないことと、セキュリティ面の改善がされないということから、更新されないモジュールは使えないです。UIとか表面上のものならともかく、こういうデータのキモとなるようなライブラリは特に。
無念。
まとめ・所感
ということで、2024年時点では、Recoilは使わないほうがいいライブラリです。技術的にも改善されないし、日本語の情報が少ないから敷居がちょっと高い。
Googleトレンド(日本)で Redux:Recoil = 2:1 くらいだったけど、その1は、たぶん私のようにさまよっている初心者の足跡なんじゃないかと。本もあるくらいだし。
未知のライブラリを使ってみるときは、公式HPとかgithubとかの、原典を当たることが大事だなと改めて思いました。リファレンスは以前からそう思っていて公式HPを見ることが多いけど、今回のケースは初めてだったかも。
私は、Reactが出てきたころ(?)のJavaScript関連ライブラリの開発スピードがすさまじかった頃を知らないけど、そのころはこんな感じだったんだろうなぁ。
なお、Recoilにインスパイアされたライブラリとして、Jotai(状態)というライブラリがあり、こちらは2024年8月現在、更新されています。ちらっとしか見れていませんが、かなり似ている感じがします。興味がある方はそちらも調べてみてください。
私はちょっと疲れたので、気力が回復したら見てみるかもしれません。
本の「React実践入門」については私はつまみ食いですが、TypeScriptも書いているし(React x TypeScriptの本は少ない)、丁寧で、わりと好きです。2023年10月発売だから、Recoilの開発停止とほぼ同時で不運だったかもしれません。技術本は、流行り以外にもこういうことがあるから難しいですね。
ではよきReactのライブラリ選択を。