前言
初衷
- 抽离通用逻辑,避免重复搬砖
组件分类
- 基础组件:提供基本功能,适用通用场景
- 业务组件:在基础组件的基础上,加入特定功能,适用特定场景
组件评价标准
-
集成复杂度:业务侧使用该组件的复杂程度
越高越复杂
-
控制反转(IoC):代码耦合程度
越高耦合度越低
业务组件开发的心路历程
Stage 1: Hooks 时代之前
组件
一个受控组件,外部数据为 “单一真实来源”
jsx
class SearchTable extends React.Component {
// 各种交互逻辑...
render() {
const {
dataSource,
loading,
onPaginationChange,
//...一堆原生组件的 props 和当前组件的 props
} = this.props;
return (
<Fragment>
<Form />
<Table dataSource={dataSource} loading={loading} />
</Fragment>
);
}
}