架構層面:
1、Qiankun是典型的微前端架構,側重構建多個獨立前端應用協同工作的架構,主應用負責自用用的加載、卸載和通信;子應用不限制,可以是VUE、React等;
2、Qiankun松耦合,各個自應用獨立開發,測試和部署,互不影響;可以多個團隊協同工作
3、NPM組件單應用組件化架構:主要用于單頁面應用或者傳統前端項目的組件化開發
4、NPM組件和項目緊密集成,組件修改可能會影響整個項目,耦合度較高
技術棧兼容
Qiankun:與技術棧無關
NPM組件:技術棧依賴,除了用JS封裝的組件可以通用之外,React封裝的組件只能在React中應用,Vue的組件只能在Vue中應用
開發和部署
Qiankun:獨立開發部署,不影響其他子應用和主應用,部署比較復雜,主要是自應用和主應用的部署順序和版本兼容問題
npm組件:開發修改比較繁瑣,特別是有嵌套比較深的底層組件,整個改動需要更新嵌套流程的所有npm項目;相對Qiankun部署簡單很多,只需要改npm 組件并發布,更新項目中組件版本;
通信方式
Qiankun:通信方式比較豐富,props、全局事件總線等
npm 組件:通信方式比較簡單,主要通過組件的屬性和事件來實現
適用場景
Qiankun:大型復雜,多團隊協作的項目;需要對現有項目進行技術棧升級時,可實現漸進式升級
NPM組件:小型項目和組件復用,小型項目或者代碼復用場景