id: ecosystem-dojo title: single-spa-dojo

sidebar_label: Dojo

Build Status

single-spa-dojo 是一个工具库,可以帮助实现使用 Dojo 框架的前端应用在转为 single-spa 注册应用时所需要的生命周期函数(bootstrap, mount and unmount)。查看 single-spa-dojo 的 github 仓库

安装

  1. npm install --save single-spa-dojo
  2. # 或
  3. yarn add single-spa-dojo

快速开始

打包好的程序“入口文件”应如下所示,这样就能将你的应用程序作为浏览器原生支持的 ES 模块加载。

  1. import { renderer } from '@dojo/framework/core/vdom';
  2. import { v, w } from '@dojo/framework/widget-core/d';
  3. import singleSpaDojo from 'single-spa-dojo';
  4. import App from './app';
  5. const dojoLifecycles = singleSpaDojo({
  6. // 必需
  7. renderer,
  8. // 必需
  9. v,
  10. // 必需
  11. w,
  12. // 必需
  13. appComponent: App,
  14. // 可选 - 参见 https://dojo.io/learn/creating-widgets/rendering-widgets#mountoptions-properties
  15. mountOptions: {
  16. // 可选
  17. registry: myRegistry,
  18. // 可选 - single-spa 会自动提供
  19. domNode: document.getElementById('myContainer'),
  20. // 可选
  21. sync: true
  22. }
  23. });
  24. export const bootstrap = dojoLifecycles.bootstrap;
  25. export const mount = dojoLifecycles.mount;
  26. export const unmount = dojoLifecycles.unmount;

选项配置

所有选项配置都包括在调用singleSpaDojo(opts)时,所传入的opts参数中,提供以下选项:

  • renderer (必需): 从 Dojo 框架导入的 renderer 函数。参见 https://dojo.io/learn/creating-widgets/rendering-widgets#rendering-to-the-dom。
  • v (必需): 在 Dojo 框架中渲染 dom 元素的函数。JSX 通常会隐藏此功能,但可以在 import { v } from '@dojo/framework/widget-core/d' 中找到它。
  • w (必需): 在 Dojo 框架中渲染 dom 元素的函数。JSX 通常会隐藏此功能,但可以在 import { v } from '@dojo/framework/widget-core/d' 中找到它。
  • appComponent (必需): Dojo 根组件的类或函数。
  • mountOptions (可选): Dojo MountOptions 对象。请注意,如果未提供 domNode,它将由 single-spa-dojo 提供。