react

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
  );
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容