【发布时间】:2018-03-24 18:24:15
【问题描述】:
假设我想用一些方法(没有状态或生命周期方法)创建一个简单的 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(),不是吗? -
是什么让你认为闭包会有任何开销或内存泄漏?
-
除了生命周期方法和
state一个class组件可以从父组件调用处理程序并向上传递参数
标签: javascript reactjs closures