Skip to content

对数据服务的特殊处理 #4

@jinzhubaofu

Description

@jinzhubaofu

Mola 渲染的过程中,会使用到 数据源(dataSource)

使用数据源

Mola 的渲染分为 Server 渲染和 Client 渲染两种:

Client 渲染

  1. 首先,取得组件配置数据;
  2. 使用对应的 Mola 组件结合组件配置数组进行渲染;
  3. componentDidMount 或者用户交互事件中,根据需要访问合适的数据源;

Server 渲染

  1. 首先,取得组件配置数据
  2. 找到所有需要 prefetch 的数据源,发送请求,获取数据
  3. 合并组件配置和 prefetched 数据,将组件渲染为 html

此时在 Client 端上,mola 应当可以自动标识那些有 prefetched 数据的组件。

多环境中的数据源

我们的系统需要多环境数据源的支持,例如预览环境与生产环境使用不同的数据源;

因此,在组件配置中的数据源字段是需要多套 endpoint 配置的。

但是 Mola 组件中,我们不希望 Mola 组件还需要运行环境还做出对应的处理;我们希望在上层就可以根据环境找到合适的 endpoint 作为唯一的 endpoint 参数传递给 Mola 组件;

数据源的格式

配置中的数据源格式如下所示:

{
    type: 'object',
    properties: {
        id: {
            type: 'integer',
            minimum: 0
        },
        name: {
            type: 'string'
        },
        sources: {
            type: 'object',
            properties: {
                preview: {
                    type: 'string'
                },
                prodution: {
                    type: 'string'
                }
            },
            required: ['production']
        }
    },
    required: ['id', 'name', 'sources'],
    media: {
        type: 'captain/activity-service/lottery'
    }
}

Mola 组件的数据源格式:

{
    type: 'string'
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions