組合:它是React官方特別推薦的一種組件化的設(shè)計(jì)方案。
意義:組合是React封裝組件的基礎(chǔ)思想,背后的語(yǔ)法基礎(chǔ):props children / render props。
封裝組件的一般思路(觀察--封裝--使用)
1、思考當(dāng)前產(chǎn)品需要復(fù)用的一種類型的組件,由哪幾個(gè)部分組件?(抽象、拆解)
把多個(gè)有所差異的需求,抽象成一個(gè)模板(組件)
進(jìn)一步把這個(gè)模板(組件)拆解多個(gè)不同“子部分”
2、把每個(gè)“子部分”封裝子組件,把每個(gè)子組件的多種可能通過props進(jìn)行控制。
3、把這些子組件,組合成多種不同的結(jié)果。(3種header*2種boyd*2種footer=12種結(jié)果)
簡(jiǎn)單理解繼承實(shí)現(xiàn)組件的復(fù)用?
// class Modal extends PureComponent {}
// class DefaultHeaderModel extends Modal {}
// class MiniHeaderModal extends Modal {}
// class DefaultFooterDefaultHeaderModal extends DefaultHeaderModel {}
// class CustomFooterMiniHeaderModal extends MiniHeaderModal {}
為props添加數(shù)據(jù)類型驗(yàn)證
import PropTypes from 'prop-types'
為props屬性添加默認(rèn)值
Modal.defaultProps = {? title: '呵呵'}