在 Malagu 的世界里:“一切皆组件”。Malagu 应用也是一个组件,是根组件。根组件依赖一个或者多个基础组件。组件机制将应用与组件统一:一个或多个组件组合成更复杂的高阶组件,如果这个高级组件不再被其他组件复用,则该组件本质上就是一个应用。

    组件本质上是 npm 包,在 npm 包之上多出了属性和模块概念。其中,属性就是扩展组件的一种常用的扩展机制。属性配置是一种无需写任何代码就能实现扩展的方式。

    在 Malagu 组件中,我们只需要在组件根目录下添加 malagu.yml 组件属性配置文件即可,默认该文件都会被加载,也可以通过模式属性配置文件:malagu-[mode].yml ,只有在特定模式被激活的时候,该配置文件才会被加载。

    Malagu 命令行工具负责加载组件的属性配置文件,安装组件依赖的拓扑排序进行加载与合并,同一种类别的属性,子组件的属性配置文件优先级高于父组件。所有,子组件除了实现自身逻辑意外,还可以通过属性配置覆盖父组件的默认属性值,从而定制父组件行为逻辑,增强组件的复用能力。

    组件属性配置示例如下:

    1. malagu:
    2. session:
    3. autoCommit: true
    4. maxAge: 86400000
    5. sessionIdKey: malagu:sessionId
    6. sessionKey: malagu:session

    定义好的属性可以很方便在代码中使用,使用方式如下:

    1. import { Component, Value } from '@malagu/core';
    2. @Component()
    3. export class A {
    4. @Value('malagu.session.maxAge')
    5. protected maxAge: number;
    6. }

    更多有关 Malagu 组件属性介绍,请移步于组件属性