Table of contents
展开目录
目录
源码
组件注册
对于使用者来说,组件库可以批量导入,也可以单个导入,例如:
app.use()
参考 官方文档,app.use()
需要传递一个带 install()
方法的对象。
组件的入口文件:
组件库的入口文件:
app.component()
正是因为要通过 app.component()
注册组件,组件的名称尤其重要,参考 此处
在上面两个 install
方法中,我们调用 app.component()
将组件库中的组件注册到使用者的 Vue 实例中。
组件的入口文件:
每一个组件都需要 installWrapper
,因此单独提取该方法:
组件库的入口文件:
目录结构
为了更好的维护和导出 props
的类型文件,将 props
单独抽离成一个 .ts
文件,emits
同理。
在官方文档中,定义一个带有默认值的 props,大概是这样:
如何将 withDefaults
defineProps
Props
,三者抽离到 props.ts
中,并像这样使用:
参考复杂的 prop 类型,结合 PropType
和 as const
:
- 通过
as unknown as PropType<T>
来定义类型;
- 使用
as const
让 props
只读;
某些场景,可能需要在 ts 中组装组件的 props,而后直接使用 v-bind
进行传递:
在 props.ts 中,使用 ExtractPropTypes
导出 SFC props 类型:
再回到 example.vue
: