BeanBase
BeanBase 是所有 bean 的基类。通过继承自BeanBase,我们可以在书写代码时便利的访问到常用的工具和能力
BeanBase本身提供了一些内置成员,也允许其他模块通过monkey机制注入扩展成员
Zova 的 IOC 容器为何代码更简洁?
原因就是优先使用依赖查找策略,从而使用更少的装饰器函数,使用更少的类型标注。向BeanBase注入系统能力对象,就是践行依赖查找策略的机制之一
内置成员
| 名称 | 说明 |
|---|---|
| app | 全局 App 对象 |
| ctx | 当前 bean 实例所归属的 Context 对象 |
| bean | 当前 bean 实例所归属的 bean 容器 |
| scope | 当前 bean 实例所归属模块的 Scope 对象 |
| $el | 当前 bean 实例所归属 Vue 组件的 dom element |
| $event | 全局事件对象 |
| $ssr | SSR对象 |
| $useMeta | 用于SEO的Meta data |
页面组件
| 名称 | 说明 |
|---|---|
| $params | params参数,支持类型化 |
| $query | query参数,支持类型化 |
子组件
| 名称 | 说明 |
|---|---|
| $props | props |
| $emit | emit |
| $slots | slots |
| $attrs | attrs |
扩展成员
当创建好一个项目时,项目中就会存在一些模块,为我们进一步开发提供了基础能力
| 名称 | 说明 |
|---|---|
| $api | 由模块home-base提供的api对象 |
| $scopeBase | 由模块home-base提供的scope对象 |
| $class | 由模块home-base提供的全局样式对象 |
| $pinia | 由模块a-pinia提供的pinia对象 |
| $queryClient | 由模块a-model提供的queryClient对象 |
| $router | 由模块a-router提供的router对象 |
| $style | 由模块a-style提供的style方法 |
| $theme | 由模块a-style提供的theme对象 |
| $token | 由模块a-style提供的token对象 |
Zova 可以搭配任何 UI 库使用,并且内置了几款 UI 库的项目模版,便于开箱即用。不同的 UI 库也会根据自身需要向BeanBase基类注入对象
| 名称 | 说明 |
|---|---|
| $antdv | 由Antdv的模块antdv-adapter提供 |
| $q | 由Quasar的模块quasar-adapter提供 |
| $vuetify | 由Vuetify的模块vuetify-adapter提供 |