公共组件设计
核心目的:在一开始考虑组件的指责范围和分层,能避免后期大的重构和迭代
设计案例
封装前
const Trigger = ({type:string})=>{
...
if(type==='Tooltip'){
return <Trigger>...
}
}
封装后
const Tooltip = ()=>{
...
return <Trigger>...
}
const Popover = ()=>{
...
return <Trigger>...
}
底层 trigger 暴露的属性过多,对用户不友好,且 tootip 和 popver 才用户常用组件
这些组件可以暴露了一个对象属性triggerProps: Partial<TriggerProps>
该对象可以接受所有 Trigger 组件的参数
而聚合这些偏低层的定制属性 ‘