logologo
指南
API
博客
常见问题
指南
API
博客
常见问题
logologo
概览
Garfish.run
Garfish.registerApp
Garfish.loadApp
Garfish.loader
Garfish.preloadApp
Garfish.channel
Garfish.router
Garfish.setOptions
Garfish.setExternal
Garfish.setGlobalObject
Garfish.getGlobalObject
Garfish.clearEscapeEffect
Previous PageGarfish.preloadApp
Next PageGarfish.router

#Garfish.channel

用于应用间的通信,Garfish.channel 为 Garfish 的实例属性,该属性是 EventEmitter2 的实例。

#Type

channel: EventEmitter2;

#默认值

  • 无

#示例

// 子应用监听登录事件
const App = () => {
  const handleLogin = (userInfo) => {
    console.log(`${userInfo.name} has login`);
  };

  useEffect(() => {
    window?.Garfish.channel.on('login', handleLogin);
    return () => {
      window?.Garfish.channel.removeListener('login', handleLogin);
    };
  });
};

// 主应用触发监听事件
api.getLoginInfo().then((res) => {
  if (res.code === 0) {
    window.Garfish.channel.emit('login', res.data);
  }
});