1.onClick
在给onClick绑定事件时,注意不要执行函数
onClick = { onValue(text) } 错误
onClick = { () => onValue(text) } 正确
2.Capture事件
在事件名后加Capture就能在
事件捕获阶段注册事件,进行函数处理,如 onClickCapture
3.高阶组件ref
高阶组件无法传递refs,且不包含被包裹组件的静态方法
不过可以将被包裹组件的静态方法复制一份给高阶组件
也可使用“hoist-non-react-statics”并且可用“转发Ref”传递ref
4.React.lazy
在一个组件内加载另一组件B,该组件B加载时间过长且并不需要立刻呈现,可考虑使用懒加载
React.lazy(); 它与【React.Suspense】一起使用
5.高阶组件使用场景
(1)操纵props
(2)通过ref访问组件实例
(3)组件状态提升
(4)用其他元素包裹组件
6.Portals
通常,render方法返回一个元素,会挂在到离其最近的父节点上
Portals提供了将子节点渲染到其他节点的方式(Modal组件就是使用了该方法)
//原,children挂载在最近的节点,也就是div上
render(){
return(
<div>
{this.props.children}
</div>
);
}
//现,children挂载在body上
render(){
return ReactDOM.createPortal(
this.props.children,
document.body
);
}