# 通信

你可以选择,Props 通信 或者 事件做通信

# Props

在宿主应用中你可以配置自定的 props, 传递给子应用

// 宿主应用
import Application from '@alicloud/console-os-react-app'

const appConfigUrl = 'https://dev.g.alicdn.com/aliyun-next/endpoint/0.1.0/endpoint.manifest.json';

const Home =  () => (
  <Application
    manifest={appConfigUrl}
    id="aliyun-console-slb"
    test={1} // 传递 props
  />
);
export default Home;

子应用中可以接受宿主传入的 props

// 子应用
import { mount }  from '@ali/os-react-portal';
import App from './app';

const appID = 'aliyun-console-slb'

export default mount(
  (props) => {
    // 消费子
    console.log(props.test)
    return <App/>
  },
  document.getElementById('app'),
  appID
);

# 事件

宿主中使用事件总线

// 宿主应用
import { createEventBus } from '@alicloud/console-os-react-app'
const eventBus = createEventBus();

// 接受子应用的事件
eventBus.on('app1-event', {/* data */})

子应用中使用事件总线

export default mount(
  (props) => {
    // 子应用发出事件
    props.emitter.trigger('app1-event', 1)
    return <App/>
  },
  document.getElementById('app'),
  appID
);