Javaレンズを通して反応を見る
私たちのコーディング ブートキャンプでは、React をスピードランしてラボで汗を流しているときに、インストラクターがこう言いました。「目を細めて見ると、React は Java によく似ています。」
最初は、ただのキャッチーで面白いフレーズでした。 ?しかし、つい最近、私は個人的な Google マップ計算プロジェクトに取り組んでいるときに React を再検討しました。何日も深く掘り下げると、それらの類似点のいくつかが明らかになり始めました。
これらの接続を詳しく調べて、Java の基本概念が React の理解をどのように明らかにするかを見てみましょう。 ?
目次
Java メイン クラスとしての App.jsx (psvm)
Java ゲッターおよびセッターとしてフックを使用した状態管理
Java クラスとしてのコンテナ
Java メソッドとしてのコンポーネント
React のコンポーネントへの復帰
Java メソッドのパラメータとしての小道具
値を返す Java メソッドとしてのコールバック関数
1. Java メイン クラスとしての App.jsx (psvm)
Java:
Java では、メイン クラスがプログラムのエントリ ポイントとして機能し、プログラムの実行を開始します。
たとえば、さまざまなクラスのオブジェクトをインスタンス化し、それぞれのメソッドを呼び出すことができます。
1 2 3 4 5 6 7 8 |
|
反応:
同様に、React アプリケーションでは、App.jsx ファイルがメインのアプリケーション フローを調整することで同等の役割を果たします。
Java の main メソッドが複数の関数を呼び出すことができるのと同じように、App.jsx はアプリケーションのルーティングと現在の状態に基づいてすべてのコンポーネントをレンダリングする責任があります。
1 2 3 4 |
|
App.jsx の上記の React の例では、return ステートメントでレンダリングされるコンポーネントは、Java でのメソッドの呼び出しまたはオブジェクトの初期化のプロセスを反映しています。
この場合、コンテナ
2. Java ゲッターおよびセッターとしてのフックを使用した状態管理
Java:
Java では、変数とパブリック getter/setter メソッドを使用してプロパティを管理し、ユーザーのユーザー名などの属性のプロパティを取得および設定します。
1 2 3 4 5 6 7 8 9 |
|
反応:
React の useState フックは、Java が getter メソッドと setter メソッドを使用してオブジェクトのプロパティを管理するのと同じように、アプリケーションの状態を処理します。
React の useState フックを使用すると、クラス内の Java のインスタンス変数と同様に、時間の経過とともに変化する可能性のある状態変数を宣言できます。
1 |
|
上記の例:
- setUserName はセッター メソッドとして機能し、ユーザー名の更新を可能にします。 useState("") はユーザー名が空の文字列として初期化されることを意味しますが、setUserName は値を更新します。
以下には、Web フォームの変更を検出してユーザー情報を更新し、ユーザー名の値をユーザーが入力した値に更新する関数 handleInputChange があります。
1 2 3 4 5 6 7 8 |
|
- ユーザー名へのアクセスはゲッターとして考えることができます。
コンポーネント内でユーザー名を参照するときは常に、ゲッターを使用してその値にアクセスすることになります。たとえば、私の Web ページでは次のようにユーザー名をレンダリングできます:
1 2 3 4 |
|
3. Java クラスとしてのコンテナ
Java:
Java では、クラスは関連するタスクとデータをグループ化します。これらは、アプリケーション内で情報がどのように流れるかを管理するのに役立ちます。
この例では、Calculator クラスが計算を処理し、結果を保存します。
1 2 3 4 5 6 7 8 9 |
|
反応:
同様に、React では、コンテナーがアプリケーションのデータをコンポーネントに接続することで重要な役割を果たします。 API 呼び出しからのデータの取得やアプリの状態の管理などを処理します。
この例では、Calculator コンテナーが入力値と結果の状態を管理します。
1 |
|
4. Java メソッドとしてのコンポーネント
Java:
Java のメソッドは、ユーザー入力の処理など、特定のアクションを実行します。これらのメソッドは、アプリケーションのさまざまな機能を容易にするために、必要に応じて呼び出すことができます。
1 2 3 |
|
反応:
Java メソッドが小規模で集中的なタスクであるのと同様に、React コンポーネントも同様の目的を果たし、ユーザー インターフェイスの基本的な構成要素として機能します。
各コンポーネントは特定の機能用に作成されており、アプリケーション全体で再利用できます。
以下の ManualFilter コンポーネントは、ユーザー向けのフィルタリング オプションのみに焦点を当てています。ユーザーが特定のカテゴリを選択できるようにするチェックボックスが表示されます。
このコンポーネントは、UserForm コンテナ ページ内で呼び出すことができます。
1 |
|
5. React のコンポーネントへの復帰
Java:
Java では、メソッドは、プログラムの別の部分が出力を生成するために使用する値を返すことがあります。
たとえば、renderOutput メソッドはユーザーの目標を含む文字列を返し、それをプログラム内の他の場所に表示できます。
1 2 3 4 5 6 7 8 9 10 11 |
|
反応:
React コンポーネントの return ステートメントは、ユーザー インターフェイスをレンダリングするために重要です。 React では、コンポーネントから返される内容によって、ユーザーが画面に表示する内容が決まります。
これは、前述のように、プログラムの別の部分で処理または表示することを目的としたデータを返す Java のメソッドと似ています。
この例では、UserGoal コンポーネントはユーザーの目標を表示する段落要素を返します。
1 2 3 4 5 6 7 8 |
|
6. Java メソッドのパラメータとしての Props
Java:
Java メソッドに引数を渡すことができ、その引数は呼び出し元オブジェクトの状態や動作に影響を与えることができます。
たとえば、メッセージをパラメータとして受け取る単純な Java メソッドを考えてみましょう。受信するメッセージは、コンソールに表示される内容に影響します。
1 2 3 4 |
|
反応:
React では、コンポーネントは Java メソッドのパラメーターに似た props を受け取ることができます。 React コンポーネントは props を使用してそのコンテンツと機能を決定します。
プロップは、コンポーネントがどのように動作するか、およびコンポーネントが表示するデータを制御します。
MessageDisplay 子コンポーネントにメッセージを渡す WelcomePage という親コンポーネントがあるとします。
言い換えると、MessageDisplay が、メッセージが表示される WelcomePage ランディング ページ上のセクションであると想像してください。
親コンポーネントでメッセージを定義し、それを MessageDisplay コンポーネントにプロップとして渡すことができます。
1 2 3 4 5 6 7 8 9 |
|
MessageDisplay コンポーネントはこの prop を受け取り、レンダリングします。
1 |
|
7. 値を返す Java メソッドとしてのコールバック関数
Java:
Java では、特定のアクションを実行して呼び出し元に値を返すメソッドがクラス内に存在することがよくあります。たとえば、2 つの数値の差を計算するメソッドを備えた Calculator という名前のクラスがあるとします。
1 2 3 |
|
^別のクラスで、Calculator クラスのインスタンスを作成し、そのメソッドを呼び出します。
反応:
React も同様の概念に従いますが、コンポーネント間の関係に焦点を当てています。
子コンポーネントを含む親コンポーネントがある場合、コールバック関数はそれらの間の通信を容易にするのに役立ちます。 (覚えておいてください: 親は他のコンポーネントを保持するメイン コンテナです - メッセージ ボックスのサブコンポーネントを持つ親「ランディング ページ」の前述の例と同様です)
たとえば、計算されたデータを親コンポーネントに送信する必要がある ChildComponent があるとします。
以下では、handleCalculationResult 関数を prop として親から子に渡します。
この関数はコールバックのように機能します:
1 |
|
以下では、onCalculate が親コンポーネントから ChildComponent で受け取られるコールバック関数であることがわかります。
ChildComponent のボタンをクリックすると、計算が実行され、onCalculate を使用して結果が親に返されます。これは、Java メソッドが呼び出し元に値を返す方法を模倣しています。
1 2 3 4 5 6 7 8 9 10 11 |
|
このようにして、親はアプリケーション全体の状態と動作を管理し、子は特定のアクション (この場合は計算) に焦点を当てます。
以上がJavaレンズを通して反応を見るの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











この記事では、2025年の上位4つのJavaScriptフレームワーク(React、Angular、Vue、Svelte)を分析し、パフォーマンス、スケーラビリティ、将来の見通しを比較します。 強力なコミュニティと生態系のためにすべてが支配的なままですが、彼らの相対的なポップ

この記事では、リモートコードの実行を可能にする重大な欠陥であるSnakeyamlのCVE-2022-1471の脆弱性について説明します。 Snakeyaml 1.33以降のSpring Bootアプリケーションをアップグレードする方法は、このリスクを軽減する方法を詳述し、その依存関係のアップデートを強調しています

Javaのクラスロードには、ブートストラップ、拡張機能、およびアプリケーションクラスローダーを備えた階層システムを使用して、クラスの読み込み、リンク、および初期化が含まれます。親の委任モデルは、コアクラスが最初にロードされ、カスタムクラスのLOAに影響を与えることを保証します

この記事では、カフェインとグアバキャッシュを使用してJavaでマルチレベルキャッシュを実装してアプリケーションのパフォーマンスを向上させています。セットアップ、統合、パフォーマンスの利点をカバーし、構成と立ち退きポリシー管理Best Pra

node.js 20は、V8エンジンの改善、特により速いガベージコレクションとI/Oを介してパフォーマンスを大幅に向上させます。 新機能には、より良いWebセンブリのサポートと洗練されたデバッグツール、開発者の生産性とアプリケーション速度の向上が含まれます。

大規模な分析データセットのオープンテーブル形式であるIcebergは、データの湖のパフォーマンスとスケーラビリティを向上させます。 内部メタデータ管理を通じて、寄木細工/ORCの制限に対処し、効率的なスキーマの進化、タイムトラベル、同時wを可能にします

この記事では、キュウリの手順間でデータを共有する方法、シナリオコンテキスト、グローバル変数、引数の合格、およびデータ構造を比較する方法を調べます。 簡潔なコンテキストの使用、記述など、保守性のためのベストプラクティスを強調しています

この記事では、Lambda式、Streams API、メソッド参照、およびオプションを使用して、機能プログラミングをJavaに統合することを調べます。 それは、簡潔さと不変性を通じてコードの読みやすさと保守性の改善などの利点を強調しています
