应用间通信
通过 @ice/stark-data
这个包可以很简单的实现应用间通信,比如全局切换语言微应用响应的场景。@ice/stark-data
支持状态共享和事件监听响应两种方式。
#
store#
APIget(key)
从 store 中获取变量set(key, value)
设置/初始化 store 中的变量on(key, callback, force)
注册变量监听事件,其中 force 为 boolean 类型,true 则表示初始化注册过程中,会强制执行一次off(key, callback)
删除已经注册的变量监听事件
#
示例使用场景:
- 中英文切换,切换按钮在主应用,监听事件在微应用
- 获取全局的登录用户信息
在主应用存储/设置信息:
在微应用中响应/获取数据:
#
event#
apion(key, callback)
注册回调函数,回调函数的入参通过 emit 注入,如 ...restoff(key, callback)
删除已经注册的回调函数emit(key, ...rest)
触发已经注册的函数,支持入参
#
示例主应用顶部有消息展示入口,微应用内有阅读消息的能力,阅读完消息后需要通知主应用刷新消息展示信息。
在主应用中监听事件:
在微应用中触发事件:
2.0.0+#
props icestark 还支持通过 props 将主应用数据传递给微应用。
#
示例主应用向微应用统一注入用户信息。
在主应用中通过 props 配置用户信息。
微应用可以通过生命周期函数获取到该数据:
#
其他对于主应用和微应用,运行时都共享了当前页面的 location、Cookie、LocalStorage、window 等全局信息,因此应用间的通信,也可以通过这些方案很简单的实现。