我正在使用公共类字段语法 ( handler = () => {...}
) 来定义我所有 React 组件的事件处理程序,以便我可以将它们this
用于我的组件,而无需将它们绑定到constructor
. 我想知道我可以使用这种语法来使用 React 生命周期方法吗?说这样使用componentWillMount
:componentWillMount = () => {...}
如果用箭头函数定义react的生命周期方法,利弊是什么?
我正在使用公共类字段语法 ( handler = () => {...}
) 来定义我所有 React 组件的事件处理程序,以便我可以将它们this
用于我的组件,而无需将它们绑定到constructor
. 我想知道我可以使用这种语法来使用 React 生命周期方法吗?说这样使用componentWillMount
:componentWillMount = () => {...}
如果用箭头函数定义react的生命周期方法,利弊是什么?
每次您的函数执行=>
操作时,它都必须创建一个新的函数对象。这可以防止浏览器在渲染同一元素的多个副本时重用相同的功能,这使得 javascript 引擎的优化变得更加困难。这会导致性能问题(但在大多数程序中,它不会引起注意)。
React 中的生命周期方法不建议使用箭头函数
组件生命周期方法中不需要隐式绑定this
(即:使用箭头函数)。它们总是从组件的上下文中调用,因此对 props、state、getState 等的访问已经可用。
所以这种模式没有任何优势。我能想到的一些缺点是:
this
一个组件方法,我会立即期望它会被下游的某个其他实体调用,即:单击从父级传递到子级的事件处理程序。