現在、私はJSXのコンポーネントとして機能する関数を含むクラスコンポーネントを持っています。
例:
class MyComponent extends React.Component {
MySubComponent = (props) => {
if (props.display) {
return <p>This text is displayed</p>
}
}
render() {
return (
<this.MySubComponent display={true} />
)
}
}
この方法でコンポーネントを呼び出すことへの影響はありますか?これには用語がありますか?
その結果、MySubComponent
インスタンスごとに新しいMyComponent
関数が作成されますが、これは非常に効率的な方法ではありません。
MySubComponent
をMyComponent
メソッドとして使用する利点は2つしかない場合があります。
それらの1つは、MySubComponent
関数を変更せずに、MyComponent
をrender
サブクラスの別の実装に置き換えることができることです。 Reactに慣用的ではありません。OOPではなく機能的アプローチを促進するためです。
もう1つは、MySubComponent
がMyComponent
インスタンスとそのプロパティにアクセスできることです。 2つのコンポーネントが密結合しているため、設計上の問題が発生します。
React開発ではこれらの引数のどちらも重要ではありません。MySubComponent
がMyComponent
の一部である必要がある特定のニーズがない限り、前者は後者のインスタンスメソッドとして定義されます。
const MySubComponent = (props) => {
if (props.display) {
return <p>This text is displayed</p>
}
}
class MyComponent extends React.Component {
render() {
return (
<MySubComponent display={true} />
)
}
}