Skip to content
← Back to rules

react-perf/jsx-no-jsx-as-prop パフォーマンス

何をするか

現在のメソッド内でローカルに定義された JSX 要素を、JSX プロップスの値として使用することを禁止します。

なぜ問題か

ローカルで定義された JSX 要素をプロップスの値として使用すると、意図しない再レンダリングやパフォーマンスの低下を引き起こす可能性があります。親コンポーネントがレンダリングされるたびに、新しい JSX 要素のインスタンスが作成され、子コンポーネントの不要な再レンダリングが発生します。また、コンポーネントのプロップスが一貫して渡されていないため、コードの保守性も低下します。

このルールに対して不適切なコードの例:

jsx
<Item jsx={<SubItem />} />
<Item jsx={this.props.jsx || <SubItem />} />
<Item jsx={this.props.jsx ? this.props.jsx : <SubItem />} />

このルールに対して適切なコードの例:

jsx
<Item callback={this.props.jsx} />

使用方法

設定ファイルまたは CLI でこのルールを有効化するには、次のようにします:

json
{
  "plugins": ["react-perf"],
  "rules": {
    "react-perf/jsx-no-jsx-as-prop": "error"
  }
}
bash
oxlint --deny react-perf/jsx-no-jsx-as-prop --react-perf-plugin

参照