ホームページ > ウェブフロントエンド > jsチュートリアル > React について私が嫌いな 5 つのこと (そしてそれらを克服する方法)

React について私が嫌いな 5 つのこと (そしてそれらを克服する方法)

Susan Sarandon
リリース: 2024-11-25 01:24:16
オリジナル
701 人が閲覧しました

Five Things I Hate About React (And How to Overcome Them)

React は現代の Web 開発の基礎となっています。その宣言型スタイルと再利用可能なコンポーネントベースの構造により、開発者がインターフェイスを構築する際の考え方に革命をもたらしました。しかし、完璧なツールなどありません。私は React を高く評価していますが、私を含む開発者が React を使用する際にしばしば遭遇する特定のフラストレーションがあります。

このブログでは、React について私が嫌いな 5 つの点を詳しく掘り下げ、それらが問題となる理由を探り、それらに対処するための実用的なソリューションを提供します。経験豊富な開発者でも、初心者でも、誰にとっても役立つものがここにあります。


1. 初心者向けの急な学習曲線

React は「単なる JavaScript」であることを誇りに思っていますが、初心者にとっての現実はさらに複雑です。その理由は次のとおりです:

  • JSX 構文: 一見すると、JSX は恐ろしいように見えるかもしれません。 HTML のような構文と JavaScript を混合することは、多くの新しい開発者にとって不自然に感じられます。
  • 状態とプロパティ: 親コンポーネントと子コンポーネント間のデータ フローを管理するには、不変性や一方向データ フローなどの概念を理解する必要があります。
  • フック: useState と useEffect はゲームチェンジャーですが、まだ React の基本に取り組んでいる初心者を圧倒する可能性があります。

なぜこれが重要なのか

React は初心者向けとして宣伝されることがよくありますが、これらの複雑さが初心者の意欲をそぐ可能性があります。誰かが早い段階で苦労すると、それを完全に放棄する可能性があります。

ソリューション

  1. シンプルに始めましょう

    まず基本的な概念に焦点を当てます。機能コンポーネント、小道具、および単純な状態管理から始めます。基本をマスターするまでは、フック、コンテキスト、または Redux などのライブラリに飛び込むことは避けてください。

  2. 学習用リソース

    • 公式 React ドキュメント: React の新しいドキュメントは、インタラクティブな例を備えた初心者向けのものです。
    • コース: Codecademy や Udemy などのプラットフォームには、ステップバイステップの React チュートリアルがあります。自分の学習スタイルに合ったものを選択してください。
  3. 小さなプロジェクトの構築を練習する

    React の概念に慣れるために、ToDo アプリ、シンプルなブログ、または天気予報アプリを作成します。大規模なプロジェクトを構築する前に、小規模から始めてください。

  4. Allais UI ジェネレーター

    Allais UI Generator を使用して、事前に設計された UI コンポーネントをスキャフォールディングします。これは、特に初心者にとって、スタイルや構造を気にせずに機能に集中するのに最適な方法です。


2. どこにでも定型文

React の最大の強みの 1 つである柔軟性は、弱点にもなりえます。 React プロジェクトのセットアップには、多くの場合、ルーティング、状態管理、ビルド ツールの構成などの反復的なタスクが含まれます。 create-react-app や Vite などの最新ツールを使用しても、定型文が過剰に感じられることがあります。

現実世界のシナリオ

新しい React アプリを開始していると想像してください。おそらく次のことが必要になります:

  • 依存関係 (react-router-dom、redux など) をインストールします
  • コンポーネント、スタイル、アセットのフォルダー構造を作成します。
  • ルーティング、API 呼び出し、状態管理用にアプリを構成します。

小規模なプロジェクトの場合、この設定はやりすぎのように感じられます。大規模なプロジェクトの場合、それは面倒です。

ソリューション

  1. スターター キットを使用する

    ルーティング、状態管理、テスト用の事前構成済みセットアップを含むスターター キットを活用します。例:

    • CRA (Create React App): 初心者向けの古典的な選択肢です。
    • Next.js: ルーティングとサーバー側レンダリングが組み込まれている、本番環境に対応したアプリに最適です。
    • Vite: 最新の開発向けに軽量かつ高速です。
  2. コードをモジュール化する

    認証や API サービスなどの一般的な機能用に再利用可能なモジュールを作成します。これにより、冗長性が削減され、開発が高速化されます。

  3. Allais UI Generator で自動化する

    Allais UI Generator は、React、Svelte、Vue.js と互換性のある事前構成されたテンプレートを提供することで定型文を最小限に抑えます。このツールは開発を加速し、セットアップではなく構築に集中できるようにします。


3. パフォーマンスの最適化は難しい場合があります

React の仮想 DOM は驚異的ですが、アプリのパフォーマンスを最適化することは依然として課題です。開発者が直面する一般的な問題は次のとおりです:

  • 不必要な再レンダリング: プロパティまたは状態の不適切な使用により、コンポーネントが不必要に再レンダリングされます。
  • 大きなバンドル: 依存関係が多すぎるか、コード分割に失敗すると、バンドルのサイズが肥大化する可能性があります。
  • 非効率的な状態管理: 状態の管理を誤ると (例、トップレベルのコンポーネントに多くの状態を保持しすぎると)、パフォーマンスが低下する可能性があります。

なぜこれが重要なのか

アプリが遅いと、特に遅いデバイスやネットワークを使用しているユーザーにとって、ユーザー エクスペリエンスの低下につながります。競争市場ではパフォーマンスが非常に重要です。

ソリューション

  1. React プロファイラー

    React Profiler ツールを使用して、不必要な再レンダリングを引き起こしているコンポーネントを特定します。

  2. メモ化

    機能コンポーネントには React.memo を使用し、不要な計算を防ぐために useMemo フックまたは useCallback フックを使用します。

const MemoizedComponent = React.memo(MyComponent);

  1. コード分割 動的インポートと React.lazy や Suspense などのツールを使用してコードを分割し、必要な場合にのみコンポーネントを読み込みます。
const LazyComponent = React.lazy(() => import('./LazyComponent'));

ログイン後にコピー
ログイン後にコピー
  1. 効率的な状態管理を採用する
    Zustand、Jotai、React Query などのライブラリは Redux よりも軽量であることが多く、状態処理の効率を向上させることができます。

  2. ツールを活用する
    Allais UI Generator などのツールを使用すると、最適化された事前構築済み UI コンポーネントを作成して、作業負荷を軽減できます。

    4. 選択肢が多すぎる

    React のエコシステムは巨大です。あらゆる課題に対して、それを解決すると主張するライブラリが豊富にあります。この多様性は力を与える一方で、麻痺させることもあります。

現実世界のシナリオ
状態管理ライブラリを選択する必要があると想像してください。 Redux、MobX、Zustand、または Context API を使用する必要がありますか?それぞれに長所と短所があり、間違ったものを選択すると、不要な頭痛の種が生じる可能性があります。

なぜこれが重要なのか
ツールの評価に何時間も費やすと、アプリを構築する実際の作業から気が散ってしまいます。さらに悪いことに、間違った選択をすると、将来的に高コストのリファクタリングが発生する可能性があります。

ソリューション

  1. 実績のあるツールを使い続ける 車輪の再発明はしないでください。次のようなアクティブなコミュニティで十分に文書化されたライブラリを使用します。
  • ルーティング: React Router または Next.js ルーティング。
  • 状態管理: React Query または Redux Toolkit。
  • UI コンポーネント: フレームワーク間の互換性のための Allais UI ジェネレーター。
  • ニーズに基づいてライブラリを評価する
    自分自身に問いかけてください:

  • このライブラリは私の問題を解決しますか?

  • 積極的に保守されていますか?

  • プロジェクトの規模と複雑さは一致していますか?

  • スタックを文書化します

    プロジェクトの「テクノロジー スタック」ドキュメントを作成します。これは、将来の意思決定と新しい開発者のオンボーディングの参考になります。

    5. 頻繁な更新と重大な変更

    React のペースの速い開発は、諸刃の剣のように感じられる場合があります。同時モードやサーバー コンポーネントなどの新機能は魅力的ですが、更新を追い続けるのは骨が折れるかもしれません。

現実世界のシナリオ
React の最新バージョンにアップグレードしたところ、人気のあるライブラリの変更が原因でアプリのテストが中断されていることがわかりました。

なぜこれが重要なのか
頻繁に更新するには、継続的な学習とメンテナンスが必要です。これは、期限が厳しいチームやレガシー コードベースを持つチームにとっては特に困難になる可能性があります。
ソリューション

  1. 徐々に最新情報を入手してください
  2. 新しいバージョンがリリースされた瞬間に React またはその依存関係をアップグレードしないでください。コミュニティからのフィードバックとドキュメントの更新を待ちます。
  3. LTS バージョンを使用する
  4. 重大な変更を最小限に抑えるために、依存関係の長期サポート (LTS) バージョンに重点を置きます。
  5. モニターのリリースノート
  6. プロジェクトを更新する前に、React ブログと GitHub リリース ノートに従って変更内容を理解してください。
  7. Allais UI Generator でスケーラブルな UI を構築する
  8. Allais UI Generator などのツールは、React、Svelte、Vue.js の最新のベスト プラクティスに沿った将来性のあるテンプレートを提供します。

確かに!これは、各問題に対する詳細な分析、例、追加の解決策を含むブログ投稿の拡張バージョンです。このバージョンは 2,500 ワードを超えており、より実用的なアドバイスが含まれています。

値下げ
コードをコピー

React について私が嫌いな 5 つのこと (そしてそれらを克服する方法)

React は現代の Web 開発の基礎となっています。その宣言型スタイルと再利用可能なコンポーネントベースの構造により、開発者がインターフェイスを構築する際の考え方に革命をもたらしました。しかし、完璧なツールなどありません。私は React を高く評価していますが、私を含む開発者が React を使用する際にしばしば遭遇する特定のフラストレーションがあります。

このブログでは、React について私が嫌いな 5 つの点を詳しく掘り下げ、それらが問題となる理由を探り、それらに対処するための実用的なソリューションを提供します。経験豊富な開発者でも、初心者でも、誰にとっても役立つものがここにあります。


1. 初心者向けの急な学習曲線

React は「単なる JavaScript」であることを誇りに思っていますが、初心者にとっての現実はさらに複雑です。その理由は次のとおりです:

  • JSX 構文: 一見すると、JSX は恐ろしいように見えるかもしれません。 HTML のような構文と JavaScript を混合することは、多くの新しい開発者にとって不自然に感じられます。
  • 状態とプロパティ: 親コンポーネントと子コンポーネント間のデータ フローを管理するには、不変性や一方向データ フローなどの概念を理解する必要があります。
  • フック: useState と useEffect はゲームチェンジャーですが、まだ React の基本に取り組んでいる初心者を圧倒する可能性があります。

なぜこれが重要なのか

React は初心者向けとして宣伝されることがよくありますが、これらの複雑さが初心者の意欲をそぐ可能性があります。誰かが早い段階で苦労すると、それを完全に放棄する可能性があります。

ソリューション

  1. シンプルに始めましょう

    まず基本的な概念に焦点を当てます。機能コンポーネント、小道具、および単純な状態管理から始めます。基本をマスターするまでは、フック、コンテキスト、または Redux などのライブラリに飛び込むことは避けてください。

  2. 学習用リソース

    • 公式 React ドキュメント: React の新しいドキュメントは、インタラクティブな例を備えた初心者向けのものです。
    • コース: Codecademy や Udemy などのプラットフォームには、ステップバイステップの React チュートリアルがあります。自分の学習スタイルに合ったものを選択してください。
  3. 小さなプロジェクトの構築を練習する

    React の概念に慣れるために、ToDo アプリ、シンプルなブログ、または天気予報アプリを作成します。大規模なプロジェクトを構築する前に、小規模から始めてください。

  4. Allais UI ジェネレーター

    Allais UI Generator を使用して、事前に設計された UI コンポーネントをスキャフォールディングします。これは、特に初心者にとって、スタイルや構造を気にせずに機能性を重視するのに最適な方法です。


2. どこにでも定型文

React の最大の強みの 1 つである柔軟性は、弱点にもなりえます。 React プロジェクトのセットアップには、多くの場合、ルーティング、状態管理、ビルド ツールの構成などの反復的なタスクが含まれます。 create-react-app や Vite などの最新ツールを使用しても、定型文が過剰に感じられることがあります。

現実世界のシナリオ

新しい React アプリを開始していると想像してください。おそらく次のことが必要になります:

  • 依存関係 (react-router-dom、redux など) をインストールします
  • コンポーネント、スタイル、アセットのフォルダー構造を作成します。
  • ルーティング、API 呼び出し、状態管理用にアプリを構成します。

小規模なプロジェクトの場合、この設定はやりすぎのように感じられます。大規模なプロジェクトの場合、それは面倒です。

ソリューション

  1. スターター キットを使用する

    ルーティング、状態管理、テスト用の事前構成済みセットアップを含むスターター キットを活用します。例:

    • CRA (Create React App): 初心者向けの古典的な選択肢です。
    • Next.js: ルーティングとサーバー側レンダリングが組み込まれている、本番環境に対応したアプリに最適です。
    • Vite: 最新の開発向けに軽量かつ高速です。
  2. コードをモジュール化する

    認証や API サービスなどの一般的な機能用に再利用可能なモジュールを作成します。これにより、冗長性が削減され、開発が高速化されます。

  3. Allais UI Generator で自動化する

    Allais UI Generator は、React、Svelte、Vue.js と互換性のある事前構成されたテンプレートを提供することで定型文を最小限に抑えます。このツールは開発を加速し、セットアップではなく構築に集中できるようにします。


3. パフォーマンスの最適化は難しい場合があります

React の仮想 DOM は驚異的ですが、アプリのパフォーマンスを最適化することは依然として課題です。開発者が直面する一般的な問題は次のとおりです:

  • 不必要な再レンダリング: プロパティまたは状態の不適切な使用により、コンポーネントが不必要に再レンダリングされます。
  • 大きなバンドル: 依存関係が多すぎるか、コード分割に失敗すると、バンドルのサイズが肥大化する可能性があります。
  • 非効率的な状態管理: 状態の管理を誤ると (例、トップレベルのコンポーネントに多くの状態を保持しすぎると)、パフォーマンスが低下する可能性があります。

なぜこれが重要なのか

アプリが遅いと、特に遅いデバイスやネットワークを使用しているユーザーにとって、ユーザー エクスペリエンスの低下につながります。競争市場ではパフォーマンスが非常に重要です。

ソリューション

  1. React プロファイラー

    React Profiler ツールを使用して、不必要な再レンダリングを引き起こしているコンポーネントを特定します。

  2. メモ化

    機能コンポーネントには React.memo を使用し、不要な計算を防ぐために useMemo フックまたは useCallback フックを使用します。

const LazyComponent = React.lazy(() => import('./LazyComponent'));

ログイン後にコピー
ログイン後にコピー


JavaScript
const MemoizedComponent = React.memo(MyComponent);
コード分​​割
動的インポートと React.lazy や Suspense などのツールを使用してコードを分割し、必要な場合にのみコンポーネントを読み込みます。

JavaScript
コードをコピー
const LazyComponent = React.lazy(() => import('./LazyComponent'));
効率的な状態管理を採用
Zustand、Jotai、React Query などのライブラリは Redux よりも軽量であることが多く、状態処理の効率を向上させることができます。

ツールを活用する
Allais UI Generator などのツールを使用すると、最適化された事前構築済み UI コンポーネントを作成して、作業負荷を軽減できます。

  1. 選択肢が多すぎます React のエコシステムは巨大です。あらゆる課題に対して、それを解決すると主張するライブラリが豊富にあります。この多様性は力を与える一方で、麻痺させることもあります。

現実世界のシナリオ
状態管理ライブラリを選択する必要があると想像してください。 Redux、MobX、Zustand、または Context API を使用する必要がありますか?それぞれに長所と短所があり、間違ったものを選択すると、不要な頭痛の種が生じる可能性があります。

これが重要な理由
ツールの評価に何時間も費やすと、アプリを構築する実際の作業から気が散ってしまいます。さらに悪いことに、間違った選択をすると、将来的に高コストのリファクタリングが発生する可能性があります。

ソリューション
実績のあるツールを使用する
車輪の再発明はしないでください。次のようなアクティブなコミュニティで十分に文書化されたライブラリを使用します。

ルーティング: React Router または Next.js ルーティング。
状態管理: React Query または Redux Toolkit。
UI コンポーネント: フレームワーク間の互換性のための Allais UI Generator。
ニーズに基づいて図書館を評価する
自分自身に問いかけてください:

このライブラリは私の問題を解決しますか?
積極的にメンテナンスされていますか?
私のプロジェクトの規模と複雑さは合っていますか?
スタックを文書化します
プロジェクトの「テクノロジー スタック」ドキュメントを作成します。これは、将来の意思決定と新しい開発者のオンボーディングの参考になります。

  1. 頻繁なアップデートと重大な変更 React のペースの速い開発は、両刃の剣のように感じられる場合があります。同時モードやサーバー コンポーネントなどの新機能は魅力的ですが、更新を追い続けるのは骨が折れるかもしれません。

現実世界のシナリオ
React の最新バージョンにアップグレードしたところ、人気のあるライブラリの変更が原因でアプリのテストが中断されていることがわかりました。

これが重要な理由
頻繁に更新するには、継続的な学習とメンテナンスが必要です。これは、期限が厳しいチームやレガシー コードベースを持つチームにとっては特に困難になる可能性があります。

ソリューション
徐々に更新してください
新しいバージョンがリリースされた瞬間に React またはその依存関係をアップグレードしないでください。コミュニティからのフィードバックとドキュメントの更新を待ちます。

LTS バージョンを使用する
重大な変更を最小限に抑えるために、依存関係の長期サポート (LTS) バージョンに焦点を当てます。

モニターのリリースノート
プロジェクトを更新する前に、React ブログと GitHub リリース ノートに従って変更内容を理解してください。

Allais UI Generator でスケーラブルな UI を構築する
Allais UI Generator などのツールは、React、Svelte、Vue.js の最新のベスト プラクティスに沿った将来性のあるテンプレートを提供します。

より良い構築方法: Allais UI Generator
これらの React の不満に共感できる場合は、ワークフローを簡素化する時期が来ています。 Allais UI Generator は、React、Svelte、Vue.js 用に設計されたクロスフレームワーク UI ジェネレーターです。これが提供するものは次のとおりです:

事前に構築されたコンポーネント: 既製のカスタマイズ可能なコンポーネントを使用して時間を節約します。
クロスフレームワークのサポート: React、Svelte、Vue のいずれで作業している場合でも、Allais がサポートします。
パフォーマンスが最適化されたコード: ベスト プラクティスに準拠したクリーンで効率的なコードを生成します。

最終的な考え

React は強力なツールですが、課題がないわけではありません。その制限を認識し、Allais UI Generator などのツールを活用することで、ワークフローを合理化し、本当に重要なこと、つまり優れたアプリケーションの構築に集中することができます。

これらのフラストレーションをためらわないでください。 React の特徴を受け入れ、適切なソリューションを見つけて、作成できるものの限界を押し広げ続けてください。

以上がReact について私が嫌いな 5 つのこと (そしてそれらを克服する方法)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート