I have a React application that is quite mature which has been developed using React version 16.14.0. Recently, there has come a need to Plugin some of the MFEs developed using Single SPA to this application. As I have tried out converting the current application to Single SPA seems to be quite far fetched given the breaking changes that the application has to go through. Therefore, I would like to know whether it is possible to mount those MFEs as DOM elements into my current application and interact them as React components. I would like to know the feasibility of such approach and any suggestions are appreciated.
Mount a Single SPA MFE to DOM of a NON Single SPA application
115 Views Asked by KasunKP At
1
There are 1 best solutions below
Related Questions in REACTJS
- What is `_dereq_()` inside React?
- React TypeError: React.renderComponent is not a function
- React - saving a component in the ref callback
- React Rails component: manually triggering a re-render
- React, ES6 - getInitialState was defined on a plain JavaScript class
- How to get multiple selected options value in React JS?
- React.render replace container instead of inserting into
- reactjs datagrid use html
- props is not initialized in react component
- How to display xml data using Reactjs
- hooking up the data model in ReactJS - syntax
- ReactJS: How to use an immutable empty array or object
- How to use Sinon.js FakeXMLHttpRequest with superagent?
- React select onChange is not working
- ReactJS - Tutorial Comment System > Threaded commenting
Related Questions in SINGLE-SPA
- Single SPA React Application Micro frontend
- single-spa shared component with vue.js
- How to get 'popstate' event listeners?
- A problem when I use webpack-5's libraryTarget:window
- Micro Front end Single SPA - died in status LOADING_SOURCE_CODE: Error loading
- Making http request from aws codebuild buildspec file to an EC2 instance which is in EKS cluster
- Run multiple flutter instances in a single-spa web app
- Vue3 + Vite + single-spa: unable to output an umd module during development
- How to deploy Single SPA Root Application on AWS server?
- How to share data between microfrontends with pub/sub and single-spa framework
- How to add dynamic path to the single-spa-router path attribute in single spa react application
- How to add base url dynamically in single-spa-router in react app
- Using Tailwind css with single-spa applications
- Single-spa patches $nuxt
- Unable to load assets in single spa angular application
Related Questions in SINGLE-SPA-REACT
- How to deploy Single SPA Root Application on AWS server?
- Using Tailwind css with single-spa applications
- How to define routing for react Micro front end application in Single Spa
- How can I import types/interfaces from a SingleSpa utility module to a Typescript based Micro frontend react app
- How to dynamically load microapplications with single-spa
- Loading micro frontend root App component's CSS in singleSpaReact on mounting to the host application
- How to import a single-spa in-browser utility module into a TypeScript parcel projects
- Reacr Single SPA Micro frontend executes old scripts after a fresh deployment
- svgr/webpack Not Working With Webpack 5 and SingleSpa
- single-page-application routing is not working after deploying to s3 bucket
- single-spa root application as a react application
- single-spa consume shared utility module in ember
- Server Render (SSR) One application in Single SPA
- CORS Error when trying to authenticate using ADFS on asp.net core 3 spa
- How to avoid caching on importmap.js in micro frontend (Single-spa) applications
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Yes, strictly speaking it is possible to mount MFE's in your existing project. The single-spa team will tell you to create a root config project, then mount your current application as MFE, and in turn, make your MFE mount the others.
While perfectly OK route, I dislike it because it is not as simple. Furthermore, root config projects use SystemJS modules and not native ES Modules. If you want ES modules, you'll have to reconfigure.
So, for the record: Seriously consider going the path recommended.
My Answer
Now, personally speaking, I prefer to do exactly what you say you want to do: Just mount stuff in my existing project.
To do this, in a nutshell:
registerApplication()andstart()in your current project.import()function according to the type of module in use (System.import()for SystemJS modules, orimport()for native ES modules).<div>elements, most of the time) in the places where the MFE's will be mounted. They require theidattribute set tosingle-spa-application:<mfe Name>, where<mfe Name>is the name given to the MFE in the call toregisterApplication().Optionally, you could assign bare specifiers (or aliases) to the URL's of the MFE's and also include an import map in your current application's index page. This is another conversation, so I'll just stop here.