意見
「React 難しい」でインターネットを検索すると多数ヒットします。
中でもJavaScriptをしっかり勉強しなければならないというのがダントツで課題のようです。
JavaScriptをしっかり勉強しなければならないのは、一見すると当たり前です。ReactはJavaScriptで書かれていますので、それが読み書きできなければならないのは当然に思えます。
しかし、私を含め、多くのRuby on Rails開発者はRubyから始めていません。Ruby on Railsで一通りウェブサイトが作れるぐらいになった後に、改めてRubyをしっかり学び直す人が多いのではないかと思います。JavaScriptをしっかり勉強しないとReactの学習が始められないというのは、実はとても違和感があります。
useState()
の返り値の2項目は(例えばconst [user, setUser] = useState(null)
のsetUser
)は関数へのレファランスを返しますuseEffect()
は高階関数で、中に記述するのはクロージャー(無名関数)ですfetch()
を多用しますので、async awaitもしくはPromiseが必要になります高階関数もasync awaitも高レベルの機能です。JavaScriptの入門書に含まれていません。あったとしても必ず最後の方です。
そして最近では、これに加えてTypeScriptも必要です。TypeScriptがわからないと、いつまでもコンパイラに怒られて先に進みません。初学者は本当に大変です
振り返ると、確かにReactに要求されるJavaScriptのレベルは高く、難しいです。
一方でHotwireはJavaScriptの入門書程度のJavaScriptで十分に書けます。これについては別記事で掘り下げています。
Hotwireの方がシンプルで、Reactの方が複雑だと言っているのではありません。熟練者にとっては、TypeScriptを含めた高度な機能を使っている方が簡単にプログラムが書けるのかもしれません。しかし入門者にとっての簡単と、熟練者にとっての簡単は異なります。
そして入門者やウェブデザイナー等にとっては、Reactは間違いなくハードルが高いフレームワークと言って良いと思います。