refreshApp
类型:
Function参数:
startOptions(与 startApp 相同)返回值:
Promise<Function | void>
主动刷新子应用:先调用 destroyApp 销毁当前实例,再以传入配置调用 startApp 全量重建。内部会等待 destroyApp 完成后再 startApp,避免销毁未结束就重启导致的竞态问题。
等价于手动串联 destroyApp(name) + startApp(startOptions),由框架保证调用顺序。
使用场景
注意
- 刷新会销毁当前子应用实例,承载子应用的
iframe和shadowRoot都会被销毁,过程中可能出现短暂白屏 name、replace、fetch、alive、degrade等参数须与首次startApp保持一致,否则渲染可能出现异常- 若子应用后续还会被打开,一般无需主动刷新;仅在需要强制重建时使用
示例
javascript
import { refreshApp } from "wujie";
await refreshApp({
name: "vue3",
url: "https://xxx.com/",
el: document.querySelector("#container"),
});
使用 Vue / React 组件封装时:
javascript
// 静态方法 refreshApp,参数与 startApp 相同
import WujieVue from "wujie-vue3";
await WujieVue.refreshApp({ name: "vue3", url: "...", el: "..." });
// 组件实例方法 refresh(),无需传参,自动复用组件当前 props 全量重建
await this.$refs.wujie.refresh();
