使用single-spa实现微前端踩坑指南

问题描述

最近公司的低代码编程平台上线了微前端框架,于是就想着先找个视频了解学习一下。刚开始的阶段就踩到了许多坑,下面记录一下使用single-spa实现微前端遇到的坑,如果你也有遇到同样的问题,希望可以给你一种解决问题的思路。

技术栈

single-spa搭建微前端 + react框架的微应用

踩坑1:

按照视频教程没有安装最新版本的single-spa,说是最新版本可能在开发过程中有许多bug,于是选中了2.0.3的版本。结果新版本有没有bug我不知道,这个版本创建的微前端框架运行不起来。具体错误如下图:
在这里插入图片描述
首先是去找了度娘,但是说法都是更新single-spa到最新版本,我。。。
网上的解决方案没有试,就尝试看一下错误信息自己解决一下。最终明白错误的原因是webpack配置项的问题,猜测可能是webpack版本问题,导致了有些配置项不识别。解决方案如下图:
在这里插入图片描述
最终问题解决,项目成功启动!

踩坑2:

微前端容器创建好了,接下来就是创建微应用了,我创建了一个react框架的微应用,结果访问的时候又报了下面的错误:
application ‘@study/reactapp’ died in status LOADING_SOURCE_CODE: Error loading http://localhost:9001/study-reactapp.js
网友有遇到同样的错误,但是错误出现的场景不一样,一时间不知道怎么解决。
最终请教了公司的一位大佬,才解决了报错问题,react应用也能在页面正常显示。
问题是因为,通过微前端访问react应用时,对应的微应用也要处于启动状态,否则就报了上面的错误。

这是我初学微前端阶段遇到的坑,希望可以帮到你们。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
作为一个AI语言模型,我无法像人类一样编写代码。但是我可以为您提供single-spa的应用的基本理解和示例。 Single-spa是一个前端服务框架,它允许您在同一个页面上使用多个JavaScript框架,例如React、Angular和Vue等。它提供了一个统一的入口点,负责管理不同的应用程序,从而使多个应用程序之间的通信更轻松。 下面是一个简单的single-spa应用示例,它使用React和Vue框架: 1. 首先,您需要使用npm安装single-spa: npm install single-spa --save 2. 然后,创建一个React应用程序: import React from 'react'; import ReactDOM from 'react-dom'; class ReactApp extends React.Component { render() { return ( <div> <h1>React App</h1> <p>Hello, World!</p> </div> ); } } ReactDOM.render(<ReactApp />, document.getElementById('react-app')); 3. 接下来,创建一个Vue应用程序: import Vue from 'vue'; import App from './App.vue'; new Vue({ el: '#vue-app', render: h => h(App) }); 4. 最后,在单一页面应用程序中使用这两个应用程序: import { registerApplication, start } from 'single-spa'; registerApplication( 'react-app', () => import('./react-app'), () => location.pathname === '/react' ); registerApplication( 'vue-app', () => import('./vue-app'), () => location.pathname === '/vue' ); start(); 这将在页面上注册两个应用程序:一个React应用程序和一个Vue应用程序。它使用location.pathname来检查当前路径是否与每个应用程序的路径匹配。如果是,则加载相应的应用程序。 如果您想了解更多关于single-spa的信息,请访问官方网站:https://single-spa.js.org/

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值