[英]Functional Components inside class components
目前我有一個類組件,其中包含充當JSX組件的函數。
例:
class MyComponent extends React.Component {
MySubComponent = (props) => {
if (props.display) {
return <p>This text is displayed</p>
}
}
render() {
return (
<this.MySubComponent display={true} />
)
}
}
以這種方式調用組件會有什么影響嗎? 還有一個術語嗎?
這導致為每個MyComponent
實例創建新的MySubComponent
函數,這不是非常有效的方法。
將MySubComponent
作為MyComponent
方法可能只有兩個好處。
其中之一是MySubComponent
可以替換為MyComponent
子類中的另一個實現,而無需修改render
函數。 這不是React慣用的,因為它促進了功能方法而不是OOP。
另一個是MySubComponent
可以訪問MyComponent
實例及其屬性。 這導致設計問題,因為兩個組件緊密耦合。
在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} />
)
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.