ホームページ > ウェブフロントエンド > jsチュートリアル > React の新機能とコード例の探索

React の新機能とコード例の探索

DDD
リリース: 2025-01-02 15:30:40
オリジナル
323 人が閲覧しました

Exploring React  New Features and Code Examples

React 19 は、開発者のエクスペリエンスとアプリケーションのパフォーマンスを向上させることを目的とした機能が満載です。コードの最適化から強力な新しいフックの導入に至るまで、React 19 は最新の Web アプリケーションを構築するための頼りになるライブラリとしての地位を確固たるものにし続けています。主要な機能を詳しく見て、実用的なコード例を使用して、それらの機能が開発プロセスにどのような変革をもたらすかを探ってみましょう。


React 19 の主な機能

1. React コンパイラー

新しい React Compiler は、コードを効率の高い JavaScript に変換することでコードを簡素化し、最適化します。これにより、メモ化などの手動によるパフォーマンス調整の必要がなくなり、開発者はパフォーマンスの微調整ではなく機能の構築に集中できるようになります。

例:

// Before: Manual optimization with useCallback
const MemoizedComponent = React.useCallback(() => {
  return <div>Optimized!</div>;
}, []);

// After: Automatically optimized
function Component() {
  return <div>Optimized!</div>;
}
ログイン後にコピー

2. サーバーコンポーネント

React 19 のサーバー コンポーネントは、サーバー上でコンポーネントをレンダリングすることにより、クライアントに送信される JavaScript の量を削減します。これによりパフォーマンスが向上し、ページの読み込みが高速化されます。

例:

// ServerComponent.server.jsx
export default function ServerComponent() {
  return <div>This is rendered on the server.</div>;
}

// App.jsx
import ServerComponent from './ServerComponent.server';

function App() {
  return (
    <div>
      <h1>Welcome to React 19</h1>
      <ServerComponent />
    </div>
  );
}
ログイン後にコピー

3. アクション

アクションにより、状態の更新とエラー処理が簡素化されます。関数に「アクションの使用」ディレクティブをマークすることにより、React は保留状態、エラー、オプティミスティック更新を自動的に管理します。

例:

function UpdateName() {
  const [name, setName] = useState('');

  const handleSubmit = async () => {
    'use action';
    await updateName(name);
  };

  return (
    <form onSubmit={handleSubmit}>
      <input type="text" value={name} onChange={(e) => setName(e.target.value)} />
      <button type="submit">Submit</button>
    </form>
  );
}
ログイン後にコピー

4. 新しいフック: use()、useFormStatus()、および useOptimistic()

データフェッチ用の use()

use() フックを使用すると、開発者はコンポーネント内で直接 Promise を処理できます。

例:

function DataFetchingComponent() {
  const data = use(fetchData());

  return (
    <div>
      <h1>Data:</h1>
      <pre class="brush:php;toolbar:false">{JSON.stringify(data, null, 2)}
); }
ログイン後にコピー

フォーム管理用の useFormStatus()

送信ステータスとエラーに関するリアルタイムのフィードバックにより、フォームの状態管理を簡素化します。

例:

function FormComponent() {
  const { isSubmitting, error } = useFormStatus();

  return (
    <form>
      <button type="submit" disabled={isSubmitting}>Submit</button>
      {error && <p>Error: {error.message}</p>}
    </form>
  );
}
ログイン後にコピー

useOptimistic() によるオプティミスティックな UI 更新

useOptimistic() フックを使用すると、オプティミスティック更新の実装が簡単になります。

例:

function OptimisticUpdateComponent() {
  const [items, setItems] = useState(initialItems);
  const [optimisticItems, addItem] = useOptimistic(items, async (newItem) => {
    await apiAddItem(newItem);
    return [...items, newItem];
  });

  return (
    <ul>
      {optimisticItems.map((item) => (
        <li key={item.id}>{item.name}</li>
      ))}
      <button onClick={() => addItem({ id: Date.now(), name: 'New Item' })}>
        Add Item
      </button>
    </ul>
  );
}
ログイン後にコピー

5. ディレクティブ: 「クライアントを使用」および「サーバーを使用」

ファイルレベルのディレクティブは、コンポーネントをクライアントとサーバーのどちらでレンダリングするかを明示的に定義するため、レンダリング ロジックの管理が容易になります。

例:

// ClientComponent.jsx
'use client';

export default function ClientComponent() {
  return <div>This component is rendered on the client.</div>;
}

// ServerComponent.jsx
'use server';

export default function ServerComponent() {
  return <div>This component is rendered on the server.</div>;
}
ログイン後にコピー

React 19 の実世界の利点

パフォーマンスの向上

React コンパイラーやサーバー コンポーネントなどの機能により、クライアントに送信される JavaScript の量が最小限に抑えられ、読み込み時間が短縮され、ユーザー エクスペリエンスが向上します。

簡素化されたコードベース

新しいフックとアクションにより定型コードが削減され、アプリケーションの保守と拡張が容易になります。

開発者の生産性の向上

useOptimistic() や use() などのツールを使用すると、開発者は複雑な状態管理や非同期操作を手動で処理するのではなく、機能の構築に集中できます。


結論

React 19 は、Web 開発における重要な前進です。その機能はパフォーマンス、スケーラビリティ、開発者のエクスペリエンスを優先しており、堅牢なアプリケーションの構築がこれまでより簡単になります。あなたが経験豊富な React 開発者であっても、まだ始めたばかりであっても、これらのアップデートは検討してプロジェクトに統合する価値があります。

React 19 に興奮していますか?以下のコメント欄であなたの考えや経験を共有してください!

以上がReact の新機能とコード例の探索の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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