tiny-engine/docs/api/frontend-api/globalService-api.md

3.6 KiB
Raw Blame History

GlobalService 元服务

全局服务

默认的全局服务是 defaultGlobalService它提供了一些常用的功能例如

  • 获取当前应用信息
  • 更新URL参数

options 配置项

enableTitleUpdate

作用:是否开启标题更新

类型boolean

默认值true

描述defaultGlobalService 会读取 app 信息,根据 app 的信息配置网页的标题为:${app.name} —— TinyEngine 前端可视化设计器

如果需要自定义标题,可以设置为 false。然后通过 document.title 来设置标题

配置示例:

import { GlobalService } from '@opentiny/tiny-engine'

export default {
  root: {
    id: 'engine.root',
    metas: [
      HttpService,
      GenerateCodeService,
      { ...GlobalService, options: { ...GlobalService.options, enableTitleUpdate: false } },
      ThemeSwitchService
    ]
  },
  //...
}

api

getBaseInfo

作用:获取当前应用信息

postLocationHistoryChanged

发布 locationHistoryChanged 事件。通知 locationHistoryChanged 事件的订阅者,当前页面发生了变化。

updateParams

作用支持批量更新URL参数pageId, blockId, previewId

参数:

  • params: object - 要更新的参数对象可包含pageId、blockId、previewId属性
  • replace: boolean = false - 是否替换当前历史记录默认为false添加新记录

说明:

  • pageId和blockId互斥如果同时提供会优先使用pageId并删除blockId
  • 只有发生变化的参数才会被更新
  • 更新后会发布locationHistoryChanged事件

使用示例:

// 导入全局服务
import { getMetaApi, META_SERVICE } from '@opentiny/tiny-engine'

// 更新pageId和previewId
getMetaApi(META_SERVICE.GlobalService).updateParams({ 
  pageId: 'page123', 
  previewId: 'preview456' 
})

// 替换当前历史记录
getMetaApi(META_SERVICE.GlobalService).updateParams({ 
  blockId: 'block789' 
}, true)

updatePageId

作用更新URL中的pageId参数

参数:

  • pageId: string - 页面ID

说明:

  • 更新pageId会自动删除blockId两者互斥
  • 会通过history.pushState更新URL添加新的历史记录
  • 更新后会发布locationHistoryChanged事件通知订阅者

使用示例:

import { getMetaApi, META_SERVICE } from '@opentiny/tiny-engine'

// 更新到新页面
getMetaApi(META_SERVICE.GlobalService).updatePageId('page123')

updateBlockId

作用更新URL中的blockId参数

参数:

  • blockId: string - 区块ID

说明:

  • 更新blockId会自动删除pageId两者互斥
  • 会通过history.pushState更新URL添加新的历史记录
  • 更新后会发布locationHistoryChanged事件通知订阅者

使用示例:

import { getMetaApi, META_SERVICE } from '@opentiny/tiny-engine'

// 更新到新区块
getMetaApi(META_SERVICE.GlobalService).updateBlockId('block789')

updatePreviewId

作用更新URL中的previewId参数

参数:

  • previewId: string - 预览ID
  • replace: boolean = false - 是否替换当前历史记录默认为false添加新记录

说明:

  • 如果previewId为空则会从URL中删除previewid参数
  • 根据replace参数决定使用pushState还是replaceState更新URL
  • 更新后会发布locationHistoryChanged事件通知订阅者

使用示例:

import { getMetaApi, META_SERVICE } from '@opentiny/tiny-engine'

// 添加预览ID并创建新历史记录
getMetaApi(META_SERVICE.GlobalService).updatePreviewId('preview456')

// 更新预览ID并替换当前历史记录
getMetaApi(META_SERVICE.GlobalService).updatePreviewId('preview789', true)

// 删除预览ID
getMetaApi(META_SERVICE.GlobalService).updatePreviewId('')