# 如何设计组件

设计组件的时候需要遵循先设计,后实现的理念。

# 组件设计四要素

  1. 属性: 属性的类型、是否必填、默认值(属性类型确定后不再变化)
  2. 方法: 方法的参数、返回值(需要考虑变化的情况)
  3. 时间: 事件回调函数的参数
  4. 子视图(插槽): 插槽可获取到的局部参数

# 最小化原则

设计组件时,务必遵循最小化原则,即尽可能少地抛出接口, 因为使用组件的用户可能有很多,一旦组件作者不小心抛出了一个不合理的接口,以后想要修改就几乎不可能了(只能通过标记过时的方法提醒用户,但这种做法往往是无奈之举)。

# 兼容多种情况

组件内部获取内容的方式有多种,用户可以直接传入内容,也可以传入id,组件内部获取,当有多种情况时,需要对传入的数据做判断,以防用户啥也不传

# 兼容不同模式

组件有多个状态,比如编辑或者阅读。此时传入数组,并以数组第一个元素为默认值

# 组件状态改变

当组件内部有多个状态的时候,是否需要将组件状态通知到外部,此时需要组件设计者认真考虑

# 组件插槽

支持用户在组件内部附加任何其他组件