JSX Props でアロー関数やバインディングを避けるべき理由は何ですか?

Linda Hamilton
リリース: 2024-11-06 20:27:03
オリジナル
588 人が閲覧しました

Why Should You Avoid Arrow Functions or Binding in JSX Props?

JSX Props でのアロー関数やバインドの使用がダメな理由

React を使用する場合、アロー関数やバインドの使用を避けることが重要です。 JSX プロパティのバインディング。この方法を実践すると、パフォーマンスの問題や不正な動作が発生する可能性があります。

パフォーマンスの問題

JSX プロップ内でアロー関数を使用するか、バインドすると、レンダリングのたびにこれらの関数が強制的に再作成されます。これは、次のことを意味します。

  • 古い関数が破棄され、ガベージ コレクションがトリガーされます。
  • 多くの要素を継続的にレンダリングすると、パフォーマンスのジッターが発生する可能性があります。
  • PureComponents に依存するコンポーネントまたは、アロー関数 prop の変更により shouldComponentUpdate が依然として再レンダリングをトリガーします。

不正な動作

次の例を考えてみましょう:

onClick={() => this.handleDelete(tile)}
ログイン後にコピー

このコードは、レンダリングごとに新しい関数を作成し、React がコンポーネントをダーティとしてマークし、再レンダリングをトリガーします。タイル プロップが変更されていない場合でも、矢印関数が異なるため、コンポーネントは再レンダリングされます。

ベスト プラクティス

これらの落とし穴を回避するには、次のベスト プラクティス:

  • コンストラクターでイベント ハンドラーをバインドします:
constructor(props) {
  super(props);
  this.handleDelete = this.handleDelete.bind(this);
}
ログイン後にコピー
  • 外部にアロー関数を作成しますrender メソッドの:
const handleDelete = tile => {
  // Handle delete logic
};
ログイン後にコピー

追加の注意:

アロー関数は他の部分で使用してもまったく問題ないことに注意することが重要ですrender メソッド内など、コンポーネントの。ただし、イベント ハンドラーを JSX プロパティに割り当てる場合は、これらを回避する必要があります。

以上がJSX Props でアロー関数やバインディングを避けるべき理由は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!