多态组件

什么是多态组件?

多态组件是可以使用as属性更改根元素的组件。所有多态组件都有一个默认组件, 当未提供as属性时使用该默认组件。例如, Link组件的默认组件是a, 它可以更改为button或任何其他元素或组件

多态组件的TypeScript支持

@rtdui的多态组件对TypeScript有着良好的支持. 一旦指定了as属性, TypeScript的智能提示和验证都将基于as指定的组件.

编写你自己的多态组件

可以参考Link组件的实现, 它足够简单. 但满足了支持TypeScript多态组件的所有要求:

  1. 独立声明组件的自有属性, 该属性供多态组件自身使用.
  2. 合并自有属性和基础组件的属性作为最终的组件属性
  3. 定义默认组件.
  4. 使用Box组件