說我想用一些方法(沒有狀態或生命週期方法)創建一個簡單的React組件。我能做到這一點的兩種方法之一:在封閉中使用類或函數的方法
// Foo.js
class Foo extends React.Component {
doSomething() {
// do something
}
render() {
...
this.doSomething();
...
}
}
export default Foo;
或者,我可以做這樣的:
// Foo.js
const doSomething =() => {
// do something...
}
const Foo =() => {
...
doSomething();
...
}
export default Foo;
第二是可取的,因爲它是一個功能組件(簡單,開銷少),但確實的閉包函數會帶來任何開銷/內存泄漏風險?
一般情況下,如果一個組件不保存狀態或使用生命週期方法,這是實現組件的最佳方式嗎?
在第一個示例中,它將是'this.doSomething()',不是嗎? – Bergi
是什麼讓你認爲閉包會產生開銷或泄漏內存? – Bergi
除生命週期方法和'狀態'''類'組件可以從父母調用處理程序並向上傳遞參數 –