WINGSプロジェクト様のポストから書評企画に応募させていただき、献本いただいたので読んだ感想を書いていきます。
読者である私について
まず、私について簡単に説明しますと、地方の受託企業で働いている2年目のプログラマーで、Reactについては、IT業界への転職を目指していた頃にポートフォリオ作成の過程で少し触った程度でした(当時作成したTodoアプリ)
業務ではフロントエンドを実装するときにはNuxt.js(Vue.js)を書くことが多く、Reactは触っていなかったのですが、流行としてNext.jsが強いこともあり、ある程度わかった方が技術記事などを読んだ際も頭に入ってきやすいのかなと思っていたところ、丁度良く今回の企画があったので参加させていただきました。
全体としての感想
本としてはJavaScriptの知識はある程度あって、Reactには触れたことがない人を対象としているようで、 私自身、JavaScriptの基礎は理解していて、業務でVue.jsを使っていることもあり、仮想DOMなどフロントエンドフレームワークの基本的な挙動はだいたい知っていました。そのため、内容はすんなり入ってきました。
また、出版時期が新しいこともあって、各技術の現在の仕様とほとんどズレがなく、快適に学習を進められた点も良かったです。
以下、個人的に良かった点と気になった点になります。
良かった点
非同期処理やイベント処理の説明が充実
Reactにおけるイベント処理の説明が特に良かったです。Reactのイベントオブジェクトが通常のJavaScriptのイベントオブジェクトと異なる点といったReact固有の内容から、イベントの伝播といったJavaScript共通の仕組みまで、丁寧に解説されていて理解が深まりました。
中でも「イベント処理はイベントの発生元だけで実行されるわけではない」という点に関して、普段はbuttonタグにonClick="handleSubmit"(ReactだとonSubmit)のように直接書くことが多く、イベント伝播についてあまり意識していませんでした。
確かにフォームなどで親要素にonClickを設定して、子要素にボタンを配置する構成は基本で、よくよく考えればそうなんですが、改めて認識できて良かったです。
最新ツールに触れられる
Jotai、vitestなど、気になっていたけど触ったことがなかったツールについて、実際に触れられたのは良かったです。 フロントエンド界隈は技術の移り変わりが早くて、少し前の教材だとJestやRedux(またはRecoil)が扱われていることが多いイメージでそういうのだと正直少し学習意欲が湧きにくいんですが、本書ではトレンドに沿ったツールが紹介されていて、その点が非常に良かったです。
テスト関連が実践的
MSWを使ったモックサーバーの構築や、E2Eやコンポーネントのテストはあまりやったことがなかったので、どういう風に進めるか分かって良かった。
コラムが良かった
レイアウトシフトの説明とか仕事で遭遇しがちなものなども入っていて、豆知識的な意味でためになることが多かったです。 あと、ReactでclassNameといった命名がキャメルケースになっている理由についても解説があって、自分はReactのコードだとわかりやすいためかなと考えていたんですが、JavaScriptの予約語だからclassは使えないっていう、ちゃんとした理由があることを知れて勉強になりました。
気になった点
TypeScriptの扱いについて
書籍の内容そのものというより構成の話なんですが、TypeScriptの説明をJavaScriptの章に含めて、本全体をTypeScript前提で進めてほしかったなと感じました。
理由として、ReactやVueなどのフレームワーク固有の型定義って意外と難しくて、TypeScript専門の書籍ではあまり触れられていないことが多いです。本書全体でそういった部分を扱ってもらえると、より実践的だったかなと思います。
ただ、TypeScriptの章にはReactでの型定義がしっかり掲載されていたので、その点は良かったです。
まとめ
生成AIなど活用して勉強したり、公式ドキュメントのチュートリアルなどで以前より学習しやすくなっていますが、 本書のように「Reactの使い方」だけでなくて「Reactを使った開発の入門」として、必要に応じて外部ライブラリやツールとの組み合わせを学べる書籍はReact学習の最初の一冊として勉強になる内容かなと思いました。