"这篇文档详细阐述了如何基于qiankun框架进行微前端开发,特别是应用间通信的实现。文档内容涵盖了子应用的构建原则、通信方式,包括官方推荐的Actions通信以及基于Storage的通信,同时也提及了使用props传递值的方法。"
在微前端架构中,qiankun是一个关键的库,它支持多个独立的应用协同工作,如同一个大型应用的各个部分。在这样的架构下,正确地划分子应用至关重要。按照业务领域而非功能模块划分子应用,可以提高代码的可维护性和降低耦合度。每个子应用应具有独立运行的能力,减少不必要的跨应用通信,以保持架构的灵活性和可控制性。
qiankun提供了一套官方的通信机制——Actions通信,适用于那些业务边界清晰、通信需求不复杂的微前端应用。Actions通信的核心在于`initGlobalState`方法,它注册了一个`MicroAppStateActions`实例,包含了`setGlobalState`、`onGlobalStateChange`和`offGlobalStateChange`三个方法。`setGlobalState`用于设置全局状态,当状态改变时,所有注册了`onGlobalStateChange`的观察者函数都会被触发。而`offGlobalStateChange`用于取消监听状态变化。
通信流程大致如下:首先,各个子应用可以注册为观察者,将回调函数添加到观察者池中;然后,当`globalState`发生变化时,通过`setGlobalState`更新状态,这会触发表达式更新,进而调用所有观察者的回调函数,实现通信。
此外,文档还提到了另一种通信方式——基于`localStorage`或`sessionStorage`的Storage通信。这种方式适用于需要持久化存储,如用户登录信息、token等场景,因为这些数据需要在页面刷新后依然保持。这种方式可以让子应用在独立运行时也能访问到这些信息。
最后,文档也提到使用props来传递值,这是一种主应用向子应用传递数据的方式,常用于共享组件或者公共方法的调用。这种方式简单直接,但仅限于单向数据传递,不适用于复杂的通信场景。
qiankun提供了多种通信策略,开发者可以根据实际需求选择最合适的方案,确保在微前端架构下的应用能够高效、稳定地协作。通过深入理解和实践这些通信机制,可以有效地管理微前端项目中的复杂性,提升整体系统的可扩展性和可维护性。