在 Malagu 的世界里:“一切皆组件”。Malagu 应用也是一个组件,是根组件。根组件依赖一个或者多个基础组件。组件机制将应用与组件统一:一个或多个组件组合成更复杂的高阶组件,如果这个高级组件不再被其他组件复用,则该组件本质上就是一个应用。
组件本质上是 npm 包,在 npm 包之上多出了属性和模块概念。其中,属性就是扩展组件的一种常用的扩展机制。属性配置是一种无需写任何代码就能实现扩展的方式。
在 Malagu 组件中,我们只需要在组件根目录下添加 malagu.yml
组件属性配置文件即可,默认该文件都会被加载,也可以通过模式属性配置文件:malagu-[mode].yml
,只有在特定模式被激活的时候,该配置文件才会被加载。
Malagu 命令行工具负责加载组件的属性配置文件,安装组件依赖的拓扑排序进行加载与合并,同一种类别的属性,子组件的属性配置文件优先级高于父组件。所有,子组件除了实现自身逻辑意外,还可以通过属性配置覆盖父组件的默认属性值,从而定制父组件行为逻辑,增强组件的复用能力。
组件属性配置示例如下:
malagu:
session:
autoCommit: true
maxAge: 86400000
sessionIdKey: malagu:sessionId
sessionKey: malagu:session
定义好的属性可以很方便在代码中使用,使用方式如下:
import { Component, Value } from '@malagu/core';
@Component()
export class A {
@Value('malagu.session.maxAge')
protected maxAge: number;
}
更多有关 Malagu 组件属性介绍,请移步于组件属性。