ホームページ >ウェブフロントエンド >jsチュートリアル >なぜみんな嫌がるような反応をするのでしょうか?
本題に入る前に、深刻な質問があります。なぜ人々は React をそんなに嫌っているのでしょうか? JSXですか?無限の選択肢? Netflix のおすすめよりも頻繁に変更されるという事実は?本当に知りたいのですが、注目の意見があれば、ぜひコメント欄に書き込んでください。本当に、遠慮しないでください。
さあ、完全に暴露します。以前の記事で、私は React を少しからかったかもしれません。そして、言っておきますが…人々はそれに気づきました。したがって、これは謝罪だと考えてください。ただし、そうではありません。でもまあ、私は(ある意味)償いをするためにここに来ました。
React: 開発者が好んで嫌う JavaScript ライブラリ。それは、誰もが賞賛または憤慨を込めて話す、学校の人気者の子供のようなものです。コンポーネントベースのアーキテクチャを称賛する人がいる一方で、その複雑さについてうめき声をあげる人もいます。では、なぜみんな React をそんなに嫌っているのでしょうか?
よくある苦情を見て、それを紐解いてみましょう。
そうそう、コンポーネントの形式で JavaScript を記述して状態を管理することは、12 種類のフレームワークを学ぶよりもとても難しいからです。 React を使用すると、目隠しをしてルービック キューブを解くような気分になるという人もいます。 JSX、フック、ライフサイクル メソッド、状態管理は、注意しないと制御不能になる可能性があります。
しかし、それは本当にそれほど複雑なのでしょうか?本格的なプロジェクトでバニラ JavaScript を使ったことがある人なら、そこで状態を管理するのは、説明書なしで Ikea の家具を組み立てようとするのと同じように感じられることをご存知でしょう。確かに、React には学習曲線がありますが、一度操作を覚えてしまえば、プログラミングで再帰の使い方を初めて理解したときと同じように、物事がうまくいき始めます。最初は混乱しますが、その後は魔法です。
そうです、React には労力がかかりますが、価値のあるものであれば何でも同様です。
ああ、成長し続けるエコシステムに関する有名な苦情ですね。 React は単なる React ではありません。Redux、React Router、Context API、そしてグレムリンのように増えていくその他のツールのパレードです。新しいプロジェクトを開始するために座るとき、ストリーミング サービスを選択するような気分になります。Netflix、HBO、それとも Disney が必要ですか? React の世界では、「Redux が必要か、それとも MobX を試してみるべきか?」のようなものです。状態管理には React Query を使用する必要がありますか?最新の CSS-in-JS トレンドについてはどうですか?"
確かに、選択肢が多すぎると感じるかもしれません。しかし、これは進歩の代償です。 React は、複雑でスケーラブルなアプリケーションを構築するためのツールを提供しますが、選択はユーザーに委ねられます。それは、マーベル・シネマティック・ユニバースが無限の選択肢を提供してくれるのと似ています。アイアンマンからワンダヴィジョンまで、誰もが楽しめるものがあります。
React の場合、開発者はオプションを好むため、エコシステムは広大です。必要なものだけを選んで、ビュッフェのようにアプリを組み立てることができます。
React の絶え間ないアップデートについて不満を言う開発者の数は、スタジアムを埋め尽くすほどです。彼らは、クラスコンポーネントに慣れてくるとすぐにフックが登場することについて不平を言います。でも、どうだろう?このようにしてテクノロジーは進化していきます。
React の進化は悪いことではありません。現代の開発ニーズに対応しています。確かに、状況は変化します。最新の React バージョンのせいで、慎重に作成したアプリが突然時代遅れに感じられるとイライラするかもしれません。しかし、停滞するライブラリよりも革新的なライブラリの方が良いと思いませんか?
誰もが鉄の玉座を目指して戦っていた ゲーム・オブ・スローンズ のように、React は JavaScript フレームワークの戦いでトップを維持するために常に進化しています。しかし、番組のエンディングとは異なり、React は実際には時間の経過とともに改善されます (ドラゴンは必要ありません)。
HTML と JavaScript を混ぜることに慣れていない人にとって、JSX は忌まわしいもののように感じられます。 「なぜ JavaScript の中に HTML を直接配置するのでしょうか?」一部の純粋主義者は尋ねます。それは、ピザにパイナップルが乗っているのを初めて見たときのようなものです。正しくは思えない、予想外の組み合わせです。
しかし、JSX を試してみると、驚くほど...便利でした? JSX を使用すると、すべてをまとめた方法で UI を構築できます。一見すると美しくありませんが、使い始めると、ロジックと UI をシームレスに統合することがいかに強力であるかがわかります。複数のファイルや言語を切り替える代わりに、すべてを 1 か所で入手できます。愛してはいけないものは何ですか?
開発者はシンプルさを好むため、コンポーネントの作成、状態の管理、フックの使用、ライブラリのインポートなど、React に必要なセットアップの量を見ると、それはやりすぎのように感じます。 「単純な ToDo リストを作成するために、なぜこれほど多くのファイルとコード行が必要なのでしょうか?」は一般的なリフレインです。はい、Vue や Svelte などのフレームワークは、より少ない手順で同様のタスクを処理できる可能性があります。しかし、強力なパワーには優れた定型文が付属しますよね?
真実は、React の冗長性は単なる余分なものではありません。それはスケーラブルなものの基礎を築くことです。確かに、おもちゃの車しか欲しかったときにレゴのセットを組み立てているような気分になります。しかし、「単純な To Do リスト」が、予想していなかった機能を備えた本格的なプロジェクトに変わると、その構造の良さがわかるでしょう。さらに、React のモジュール式の性質により、新しいピースを追加したときにレゴ デス スターが崩壊しないようにするなど、長期的なメンテナンスが容易になります。
パフォーマンスや仮想 DOM ウィザードリーについてよく話題になりますが、React アプリは時々動作が遅く感じることがあります。コンポーネントが不必要に再レンダリングされたり、状態管理が混乱したりすると、それはスポーツカーをハンドブレーキをかけたまま運転するようなものです。終わりのないモグラたたきゲームをしているかのように、レンダリングのバグを追跡しながら最適化に何時間も費やすこともできます。しかし、問題は、なぜこのようなことが起こるのかということです。
真実は、React は本質的に遅いわけではありません。ほとんどの場合、それは開発者のエラーか機能の誤用です。再レンダリングしすぎ?状態を正しく処理できなかったのは私たちの責任です。メモリリーク?繰り返しますが、それは通常、管理ミスに関するものです。 React をトニー・スタークのアイアンマン スーツのようなものだと考えてください。適切な訓練を受けていない人がスーツを建物の側面に衝突させても、スーツのせいではありません。一度マスターすれば、素晴らしいパフォーマンスが得られます。そして、正直に言うと、React が最適化のために提供するツールは豊富にあります。重要なのは、それらの使い方を知ることだけです。
それは React ですよね?学習するライブラリは 1 つだけですよね?間違っている。 React エコシステムに飛び込むと、Next.js、Gatsby、Remix など、さまざまなフレームワークに突然直面することになります。それは、ドアを 1 つ開けただけで、その向こうにさらに 10 のドアがあり、それぞれが異なるものを提供しており、どれを選ぶべきか見当がつかないようなものです。 「サーバーサイドのレンダリングは必要ですか? 私の個人ブログには静的サイトの生成は過剰ですか?」
真実は次のとおりです。React の周りに非常に多くのフレームワークがあるという事実は呪いではなく、むしろ幸いです。 React は必要なものを選択できる柔軟性を備えています。 SEO に配慮したサーバー側レンダリングが必要ですか?次へ.js。非常に高速な静的サイト ジェネレーターが必要ですか?ギャツビーはあなたの男よ。これはスイス アーミー ナイフを持っているようなものです。ツールの数が多すぎるように思えるかもしれませんが、最終的には、取り組んでいる問題が何であれ、柔軟に解決できるようになります。誰もあなたにそれらすべてを学ぶことを強制しません。効果的なものを選択して、それを続けるだけです。
現実には、ほとんどの人は React を嫌いではなく、学習曲線にイライラしているだけです。 Reactが悪いというわけではありません。 React はハンドホルダーではないということです。他のフレームワークは組み込みの利便性を提供してくれるかもしれませんが、React はユーザーをディープエンドに放り込んで「泳げ!」と言います。確かに、最初は気が遠くなるように思えるかもしれませんが、そこにこそその力があるのです。 React はあなたを制限しません。その微妙なニュアンス、広大なエコシステム、そしてその中心となる哲学を理解することが求められます。正直に言うと、React はすぐに夢中になるというよりは、ゆっくりと燃え上がるものです。
React は、同梱されているツールの中で最も簡単であるとは決して主張しませんでした。夕食を作ってくれたり、洗濯物をたたんでくれたりする、親切すぎるいとこのヴエとは違います。いいえ、React はむしろ、あなたにドアを示しながらも、それを開けることを期待する賢明で経験豊富な指導者に似ています。 それは欠陥ではなく、設計上の選択です。学習曲線は急勾配かもしれませんが、それによって得られる柔軟性とパワーはどうでしょうか?比類のないものです。
React にふさわしい敬意を払いましょう。それは 2013 年から存在しています (テクノロジーの時代に換算すると、それは事実上永遠に相当します)。それ以来、現れては消えていったトレンド、ライブラリ、フレームワークの数を考えてみてください。AngularJS は消え去り、jQuery は遺物となり、その他の数え切れないほどのものが消滅したり、大きく方向転換したりしています。しかし、React は生き残っただけでなく、繁栄しました。それはただ固執するだけではありませんでした。同じ中心となる哲学を維持しながら、新しい開発者のニーズに適応して進化しました。それは無視できることではありません。それは本当に注目に値するものの特徴です。
React は完璧ではないかもしれませんが、その持続力を認めましょう。ライブラリやフレームワークは、台頭すると同時に燃え尽きてしまうことがよくありますが、React はその祖先よりも長持ちし、より新しく輝く競合他社の氾濫に対しても優位を保ち続けています。確かに、Svelte、Solid、さらには Vue 3 もありますが、市場における React の優位性を奪うことに成功したものはありません。 React は、Facebook や Instagram から Airbnb や Netflix に至るまで、何百万もの Web サイトやアプリで React を活用しており、依然としてその優位性を保っています。
正直に言うと、多くの開発者が不満、冗談、「React はクソだ」という Reddit スレッドでそのを生き延び、今でも多くの人にとって頼りになるライブラリである
のツールです。 ?それは尊敬に値します。その長期にわたる統治はまぐれではありません。これは、成長する情熱的なコミュニティを維持しながら、実世界での長年の使用によって実戦テストされ、洗練され、強化されてきました。癖があるかもしれませんが、明らかに正しいことを行っています。それでは、その複雑さについて話しましょう。 React を習得するには、他のフレームワークよりも多くの努力が必要ですか?絶対に。しかし、それは欠点ではありません。それはその柔軟性の証です。 React は選択肢を提供します
。そして、大きな力には大きな責任が伴います (ベンおじさん、ありがとう)。シングルページ アプリ、React Native を使用したモバイル アプリ、または Next.js を使用した高パフォーマンスで SEO に優しい Web サイトを構築する場合でも、React はすべてを処理できる多用途性を備えています。確かに、JSX は最初は少し奇妙に見えるかもしれませんし、膨大な数のフック、パターン、状態管理ソリューションに圧倒されるように感じるかもしれません。しかし、快適になるためにひとたび努力すれば、React が提供するコントロールは並外れたものになります。それは基本的なアプリを構築するだけではありません。エクスペリエンスを作り上げ、スケーラブルなアーキテクチャを作成し、他のフレームワークでは不可能な方法で複雑な問題を解決することが重要です。
React は、アプリを構築する方法
を教えてくれません。それはあなたにツールを提供し、あなたにとって何が最適かを見つけ出すことを期待します。この柔軟性は、React が小規模で迅速なプロジェクトと大規模なエンタープライズ レベルのアプリケーションの両方に同様に役立つことを意味します。これはフロントエンド開発におけるスイス アーミー ナイフであり、適切に使いこなせるようになるには時間がかかるかもしれませんが、一度使いこなせると非常にやりがいがあります。ゲームで 10 年以上が経過しても、React の影響力は衰える気配がありません。 Redux、React Router などのライブラリ、Next.js などのフレームワークを備えたその大規模なエコシステムは、常に成長し、革新されています。ほとんどの人が匹敵することのないレベルの柔軟性、パフォーマンス、および開発者エクスペリエンスを提供するため、開発者は今でもそれに群がります。さらに、コンポーネントと再利用性に重点を置いた React は単なる流行ではなく、ユーザー インターフェイスの構築についての考え方を変えました。
実際、React をテクノロジー業界の定番にしているのは、React のエコシステムです。 Facebook (Meta) とその強力な貢献者コミュニティからのサポートにより、React は改善され続けています。これは単なるフレームワークではなく、最新の Web 開発をサポートするエコシステム全体です。小さなウィジェットを作成する場合でも、Web サイト全体を作成する場合でも、React がサポートします。
では、React は完璧なのでしょうか?いいえ、決してそうであるとは主張しませんでした。しかし、その長所はその癖をはるかに上回ります。最初の複雑さは?それが React に長期的なスケーラビリティを与えるのです。圧倒的に感じる生態系は?それは、React が必要なものを自由に構築できるようにするだけです。風変わりなJSX?まあ、人生では奇妙なことが、最高の結果になることもあります。
技術トレンドが電光石火のスピードで変化する世界で、React は関連性を維持し、適応し、開発者にとって頼りになる選択肢であり続けることに成功しました。そしてそれは尊敬に値するだけでなく賞賛に値します。好きか嫌いかに関係なく、React はここに残ります。そして正直に言うと、私たち全員が React を利用することでより良い生活を送れるようになります。
それで、次回、JSX を悪口したり、終わりのない変化について不平を言ったりすることがあったら、思い出してください。それは React ではなく、単なる成長痛です。そして、最終的にそれをマスターしたときは? React がフロントエンド フレームワークの王様としての地位を獲得した理由がわかるでしょう。
以上がなぜみんな嫌がるような反応をするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。