Eas*_*war 8 javascript reactjs react-hooks
我最近开始使用钩子,并将现有的类组件迁移到钩子。在使用钩子的几个性能好处中,我无法理解的一个方面是回调是如何传递的。
Hooks 引入了useCallback它提供了一个记忆化的回调,这样每次重新渲染都不需要生成一个新的方法。但在完成API 的设置后,我仍然可以看到,对于每个渲染,它仍然做了很多事情。
另一方面,类 API 提供了一种绑定回调一次的简单方法,因此每个渲染都不会有任何额外的混合。
比较示例代码:
/**
* Hooks
*/
function Test() {
const handleCallback = React.useCallback(() => {
/**
* Callback handler implementation
*/
}, [/** deps */]);
return <ChildComponent callback={handleCallback} />;
}
/**
* Class API
*/
class Test extends React.Component {
handleCallback = () => {
/**
* Callback handler implementation
*/
};
render() {
return <ChildComponent callback={this.handleCallback} />;
}
}
Run Code Online (Sandbox Code Playgroud)
引用文档:
挂钩允许您根据相关部分(例如添加和删除订阅)来组织组件中的副作用,而不是根据生命周期方法强制进行拆分。
这个性能是否达到了将所有部分集中在一处的预期权衡?
是否存在使用内联回调的情况,因为它总是会导致子项的重新渲染。在这种情况下,useCallback 几乎总是不需要?
| 归档时间: |
|
| 查看次数: |
9095 次 |
| 最近记录: |