@empjs/plugin-emp-runtime
配置
emp-config.js
import {defineConfig} from '@empjs/cli'
import pluginEmpRuntime from '@empjs/plugin-emp-runtime'
export default defineConfig(store => {
return {
plugins: [
pluginEmpRuntime({runtimeHost: `http://localhost:3011`}),
],
}
})
项目调用
import React, {useEffect, useState, version} from 'react'
import ReactDOM from 'react-dom'
import {empRuntime, withReactAdapter} from '@empjs/plugin-emp-runtime/runtime'
empRuntime.init({
remotes: [
{
name: 'mfHost',
entry: `http://${process.env.lanIp}:8001/emp.js`,
},
],
name: 'federationRuntimeDemo',
})
const RemoteApp = withReactAdapter<any>(empRuntime.load('mfHost/App'))
const ParentComponent = () => {
const [count, setCount] = useState(0)
return (
<div style={{border: '1px solid #eee', padding: '10px', background: '#f7f7f7'}}>
<h1>React Version {React.version}!</h1>
<button onClick={() => setCount(count + 1)}>Click Count {count}</button>
</div>
)
}
const ParentComponentAdepter = withReactAdapter(ParentComponent, React, ReactDOM)
const App = () => {
return (
<>
<h1>app React Version {version}</h1>
<RemoteApp component={ParentComponentAdepter} />
</>
)
}
export default App