「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > React.js の純粋なコンポーネント

React.js の純粋なコンポーネント

2024 年 11 月 2 日に公開
ブラウズ:904

Pure Component in React.jsコンポーネントを純粋に保つことは、React と関数型プログラミングの基本原則です。ここでは、React コンポーネントの純度を維持するための利点や戦略など、コンポーネントの純度の概念をさらに詳しく説明します。


React でコンポーネントを純粋に保つ

純粋関数とは何ですか?

純粋な関数は、次のような関数です:

  1. 決定的: 同じ入力が与えられると、常に同じ出力が生成されます。
  2. 副作用なし: 外部状態の変更や外部とのやり取り (API 呼び出しの実行、DOM の操作など) などの副作用は発生しません。

純粋なコンポーネントを使用する理由

  1. 予測可能性: 純粋なコンポーネントは一貫して動作します。その出力を信頼できるため、アプリケーションに関する推論が簡素化されます。

  2. テストが簡単: 純粋なコンポーネントは予測可能で副作用がないため、テストが簡単です。外部状態の変化を心配することなく、入力プロパティに基づいて出力を直接テストできます。

  3. パフォーマンスの最適化: 純粋なコンポーネントはレンダリングの最適化に役立ちます。 React は、プロパティの変更に基づいてコンポーネントを再レンダリングする必要があるかどうかを効率的に判断できます。

  4. 保守性: コードベースが成長するにつれて、純粋なコンポーネントの保守がより簡単になります。隠れた依存関係を持たずに機能をカプセル化し、デバッグとリファクタリングを容易にします。

  5. 再利用: 純粋なコンポーネントは外部状態に依存しないため、再利用可能性が高くなります。さまざまなコンテキストで簡単に使用できます。

コンポーネントを純粋に保つ方法

コンポーネントを純粋な状態に保つための戦略をいくつか示します:

  1. 副作用を避ける:
    • プロパティやグローバル状態を直接変更しないでください。
    • レンダリング メソッド内の非同期操作 (API 呼び出し、タイマーなど) を避けてください。
   const PureComponent = ({ count }) => {
     // Pure function: does not cause side effects
     return 
{count}
; };
  1. React.memo を使用する:
    • 関数コンポーネントを React.memo でラップして、プロパティが変更されていない場合に不要な再レンダリングを防ぎます。
   const PureGreeting = React.memo(({ name }) => {
     return 

Hello, {name}!

; });
  1. プロップの構造を解除:
    • コンポーネントのパラメータリスト内のプロップを構造化して、コンポーネントの構造をクリーンで焦点を絞った状態に保ちます。
   const PureButton = ({ label, onClick }) => {
     return ;
   };
  1. ステータスアップ:
    • 親コンポーネントで状態を管理し、必要なデータとイベント ハンドラーを子コンポーネントに渡します。これにより、子コンポーネントは純粋に機能し続けます。
   const ParentComponent = () => {
     const [count, setCount] = useState(0);

     return ;
   };
  1. レンダリングでのインライン関数を避ける:
    • 関数を render メソッド内でインラインで定義する代わりに、関数を外部で定義します。これにより、レンダリングごとに新しい関数インスタンスが作成されなくなり、不必要な再レンダリングが発生する可能性があります。
   const PureCounter = React.memo(({ count, setCount }) => {
     return ;
   });
  1. 状態を直接変更しないようにする:
    • 既存の状態を直接変更するのではなく、新しい状態を返すメソッドを使用します。これは不変性の原則と一致します。
   const handleAddItem = (item) => {
     setItems((prevItems) => [...prevItems, item]); // Pure approach
   };

純粋なコンポーネントの例

これらの原則に従った純粋な機能コンポーネントの完全な例を次に示します:

import React, { useState } from 'react';

const PureCounter = React.memo(({ count, onIncrement }) => {
  console.log('PureCounter Rendered');
  return ;
});

const App = () => {
  const [count, setCount] = useState(0);

  const handleIncrement = () => {
    setCount((prevCount) => prevCount   1);
  };

  return (
    

Pure Component Example

); }; export default App;

結論

React でコンポーネントを純粋に保つと、開発が簡素化されるだけでなく、パフォーマンスと保守性も向上します。純粋関数の原則に従うことで、予測可能で再利用可能でテストが簡単なコンポーネントを作成できます。副作用の回避、React.memo の使用、状態の適切な管理などのベスト プラクティスに従うことは、堅牢で販売可能なアプリケーションを構築するのに役立ちます。

リリースステートメント この記事は次の場所に転載されています: https://dev.to/theonlineaid/pure-component-in-reactjs-acl?1 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3