引言
antd的Tooltip组件在react-componment/trigger的基础上进行封装,而组件Popover和Popconfirm是使用Tooltip组件的进行pop,在react-componment中,使用到组件tc-trigger的还有menu、select、dropdown、time-picker、calendar等,本文主要对tc-trigger源码进行解读。
结构
项目结构如下:
index.js,负责外层封装,负责事件绑定与dom渲染控制。
LazyRenderBox.js,pop内容懒加载warp。
mock.js 未使用。
Popup.js,pop的warp,负责控制pop的对齐、动画、宽高。
PopupInner.js,pop内容warp。
index.js
从render方法入手,需要渲染控制pop显示的节点和pop内容节点两个节点,而pop内容节点一般渲染到body里面,不属于控制pop显示的节点内,render方法代码如下:
const trigger = React.cloneElement(child, newChildProps);
if (!IS_REACT_16) {
return (
parent={this}