更新时间:2023-08-21 09:33:28下载pdf
微应用暴露一些 API,用以获取运行时的 SaaS 信息,或者协助完成功能开发。
这些 API 挂载在 src/index.tsx
里的 microProps
变量上并对外暴露。API 在微应用被挂载后被赋值,在使用微应用时,确保 API 都可被合理调用。
微应用 API 只能在微应用的组件内使用。
在下列示例中,您可以了解如何在微应用的组件里,使用微应用 API 来获取用户在当前 SaaS 上选择的语种。
示例代码
import { microProps } from 'src'; // 从 src/index.tsx 引入对象
const Page = () => {
const { tyLang } = microProps;
return (
<div className={styled['layout']}>
<div> 用户选择的语言是: {tyLang}.</div>
</div>
);
};
export default Page;
下文将列举暴露的 API 及说明。
微应用基础路由,又称 路由前缀,微应用内部路由均基于这个基础路由。
示例代码
const { base } = microProps;
// base => /apps/{微应用实例 id}
每当微应用被应用于一个 SaaS,就会在 SaaS 中产生一个微应用的实例 ID,用作唯一标识。
例如,用户管理 微应用中存在路由 /user/list
,如果 用户管理 微应用在 SaaS 中存在 /app/{微应用实例 id}
的前缀,/user/list
便被补全为 /app/{微应用实例 id}/user/list
。通过 base
,您可获取 SaaS 中微应用实例的前缀。
微应用基于主应用容器运行,container
对象是微应用所挂载处的主应用 DOM(Document Object Model)对象。
更多介绍,请参考 名词解释。
示例代码
const { container } = microProps;
// container => DOM 对象
获取当前微应用的 entry
对象。
示例代码
const { getOwnMenu } = microProps;
const entry = getOwnMenu();
/**
* {
* entry_id: 'x',
* entry_name: 'micro-test-app',
* micro_app_name: 'micro-test-app',
* oem_micro_app_id: 'z',
* path: '/app/{微应用实例id}',
* sub_entry_list: []
* }
*/
关于 entry
对象的更多信息,请参考 描述文件 的 entries
章节。
判断用户是否拥有某一个权限点。
请求参数
字段 | 说明 |
---|---|
permissionCode | 权限 code。 |
返回参数
字段 | 说明 |
---|---|
boolean | 表示是否有权限操作。 |
示例代码
const { hasPermission } = microProps;
const canDoUserDelete = hasPermission('USER_DELETE');
// canDoUserDelete: true / false
关于权限标识符的配置信息,请参考 描述文件 的 privileges
章节。
全局 history
对象。您可通过该方法跳转到指定微应用,使用方式和 webApi: history
一致。
示例代码
interface mainHistory {
push: (path: string, state?: any) => void;
replace: (path: string, state?: any) => void;
go: (n: number) => void;
goBack: () => void;
goForward: () => void;
}
通过 path
字段修正左侧选中菜单。
请求参数
字段 | 说明 |
---|---|
path | 需要被选中的菜单对应的路径。 |
返回参数
字段 | 说明 |
---|---|
void | N/A |
示例代码
const { modifySelectedMenu } = microProps;
modifySelectedMenu('selected_path');
动态 API 的集合,目前包括 setBreadcrumb
,用于设置当前页面的面包屑内容。
示例代码
const { dynamicProps } = microProps;
// 自动设置
dynamicProps.setBreadcrumb([{ type: 'auto' }]);
// 手动指定
dynamicProps.setBreadcrumb([
{ type: 'c', name: 'a', path: 'a' },
{ type: 'c', name: 'b', path: 'b' },
{ type: 'c', name: 'c', path: 'c' },
]);
参数说明
字段 | 说明 |
---|---|
type | 类型:
|
name | type 为自定义时,需要指定的展示名称。 |
path | type 为自定义时,需要指定的单击面包屑跳转的目标地址。 |
获取微应用唯一标识。
示例代码
const { name } = microProps;
// name => xxx:string
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈