最近两次面试都被问到了 组件封装需要注意什么 这个问题,平时在开发中都是基于经验就直接能写出来,但是这些经验如何转化成方法论则需要一些总结
一、单一职责
封装组件时如果不能给这个组件一个有意义的名字,证明这个组件承担的职责可能不够单一,需要继续抽取组件
二、可扩展
需求变动能够及时调整,不影响之前代码
- 灵活的slot
- props必填选填明确,使用默认值
- 回调事件
- 组件继承
三、可维护
- css使用BEM命名
- 回调事件以on开头,组件内事件以 handle 开头 ,私有方法以 _ 开头
- 使用computed对props进行二次封装
四、高内聚,低耦合
- props由父级传入,修改通过 emit 交给父级处理,组件只监听props变化做出响应
- 组件内业务逻辑不依赖外部,差异只通过props传入
- 组件内部不依赖全局状态