用于 WordPress 管理页面的最小引导包。
它将单页 React 应用程序渲染到管理界面中
并连接其路由、菜单项和启动模块。
安装
安装该模块
npm install @wordpress/boot --save
用法
该包提供了两个入口点,分别对应两种管理页面布局。
生成的 PHP 页面会导入 @wordpress/boot 并调用相应的
函数以传入页面配置。
页面本身通过 @wordpress/build 页面配置 声明。
init
启动一个全屏应用程序,接管带有自身侧边栏导航的管理界面。由以全屏模式生成的页面(page.php)使用。
import { init } from '@wordpress/boot';
init( {
mountId: 'my-page-app',
menuItems,
routes,
initModules,
dashboardLink,
} );
initSinglePage
启动嵌入在标准 wp-admin 外壳内的应用程序,不带全屏侧边栏。由以 wp-admin 模式生成的页面(page-wp-admin.php)使用。
import { initSinglePage } from '@wordpress/boot';
initSinglePage( {
mountId: 'my-page-app',
routes,
initModules,
} );
这两个函数遵循相同的启动序列:
- 在 store 中注册页面的
menuItems和routes。 - 运行页面的初始化模块(见下文)。
- 将应用程序渲染到
mountId中。
Boot 的内部外壳是私有的。使用者可以设置挂载元素和
各自路由内容的样式。Boot 不提供稳定的样式钩子或
用于替换其内部布局、导航和表面元素的钩子。
初始化模块
初始化模块是在页面启动时运行一次性设置步骤的脚本模块,位于菜单项和路由注册之后、应用渲染之前。它们适用于无法在页面的静态 PHP 配置中表达的任务,例如分配菜单项图标或注册 core-data 实体。
将它们作为 initModules 数组传递。每个模块必须导出一个异步 init 函数:
export async function init() {
// One-time startup work.
}
初始化模块通过 wpPlugin.pages[].init 构建配置按页面声明,这会将它们作为静态依赖项加载,并将其 ID 转发给 init 和 initSinglePage。有关配置详情,请参阅 @wordpress/build 初始化模块文档。
为此包做出贡献
这是 Gutenberg 项目的一部分独立包。该项目组织为 monorepo。它由多个自包含的软件包组成,每个包都有特定的用途。此 monorepo 中的包发布到 npm,并被 WordPress 以及其他软件项目使用。
要了解有关为此包或整个 Gutenberg 做出贡献的更多信息,请阅读项目的主要 贡献者指南。