Skip to content

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全局事件对象
$ssrSSR对象
$useMeta用于SEO的Meta data
$appUtil= app.meta.util
$ctxUtil= ctx.meta.util

页面组件

名称说明
$paramsparams参数,支持类型化
$queryquery参数,支持类型化

子组件

名称说明
$propsprops
$emitemit
$slotsslots
$attrsattrs

扩展成员

当创建好一个项目时,项目中就会存在一些模块,为我们进一步开发提供了基础能力

名称说明
$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提供

基于 MIT 许可发布