Skip to content

快速上手

子应用

安装

shell
npm i merak-helper
npm i merak-helper

需要根据打包器,安装vite-plugin-merak/webpack-plugin-merak

shell
npm i vite-plugin-merak -save-dev
npm i vite-plugin-merak -save-dev

如果不使用打包器,可使用脚手架

配置

vite为例

ts
import { Merak } from 'vite-plugin-merak'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [Merak('sub1'/** 子应用专属的变量名 */,)],
})
import { Merak } from 'vite-plugin-merak'
// https://vitejs.dev/config/
export default defineConfig({
  plugins: [Merak('sub1'/** 子应用专属的变量名 */,)],
})

fakeGlobalVar必须是一个合法的,未被占用的变量名,和umdlibrary name性质差不多

webpackexample

代码

vue为例,

ts
// in main.ts
import { $onMount, $onUnmount } from 'merak-helper'
let app: AppType
function render() {
  app = createApp(App)
  app.mount('#app')
}
$onMount(render)// 挂载时执行
$onUnmount(() => app.unmount())// 卸载时执行
// in main.ts
import { $onMount, $onUnmount } from 'merak-helper'
let app: AppType
function render() {
  app = createApp(App)
  app.mount('#app')
}
$onMount(render)// 挂载时执行
$onUnmount(() => app.unmount())// 卸载时执行

就是暴露生命周期,没有什么特殊的

如果无法暴露生命周期,详见iframe模式

主应用

创建Merak实例,必须先于html挂载 和无界差不多,使用了web component

js

ts
import { CompileLoader, Merak } from 'merak-core'
/** 设置加载器 */
const loader = new CompileLoader()
/** 设置子应用配置 */
const app = new Merak(name/** 子应用name */, url/** 子应用url */, { loader })
import { CompileLoader, Merak } from 'merak-core'
/** 设置加载器 */
const loader = new CompileLoader()
/** 设置子应用配置 */
const app = new Merak(name/** 子应用name */, url/** 子应用url */, { loader })

html

html
<merak-app :data-merak-id="name"></merak-app>
<merak-app :data-merak-id="name"></merak-app>

vue详见

react详见

Released the MIT License.