custom-elements-everywhere
single-spa
custom-elements-everywhere | single-spa | |
---|---|---|
19 | 49 | |
1,135 | 13,047 | |
0.5% | 0.4% | |
8.9 | 6.1 | |
6 days ago | 15 days ago | |
JavaScript | JavaScript | |
GNU General Public License v3.0 or later | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
custom-elements-everywhere
-
Unlocking the frontend – a call for standardizing component APIs pt.2
With React (it seems) finally moving to support everything needed (they are the last major framework lagging behind substantially), too, we might be moving to a world post-framework discussions, and real interoperability on a technical level. I think Jake Lazaroff motivates this beautifully with his articles “Web Components Eliminate JavaScript Framework Lock-in” and “The Web Component Success Story”.
-
Use web components for what they’re good at
Seems it doesn’t work in React, everything is sent as a string. There was a link in the article that shows how well web components work with various frameworks.
https://custom-elements-everywhere.com/
You can see how React fares for itself.
-
If Web Components are so great, why am I not using them?
React supports Web Components, just some quirks to be aware of: https://custom-elements-everywhere.com/
-
[AskJS] Asking advice on monorepo setup with multiple frameworks
You could wrap each component as a Web Component and then import them for each repo. Web Components are not native to frameworks, so the support for them could vary when passing props. Or you could wrap the render method of each framework as a function and then use the receiving frameworks life cycle method and inject it onto the page. If you use frameworks like Svelte or Lit that are "Web Component" based, then you'd need to see if the receiving framework supports Web Components inorder to import the seamlessly.
-
Am I the only one that thinks that the direction of React is wrong?
Check compatibility of React with web components: https://custom-elements-everywhere.com/ It's not directly because of jsx, but because of synthetic "let's make it up" approach of React.
-
Regarding converting svelte file into pure js file
I have been using this approach recently as well, working great thus far ! Some things to consider though: - I would recommend checking if the other frameworks you intend to use have good web components support (looking at you, react): https://custom-elements-everywhere.com/ - There are ways to do so without web components, but I wouldn't recommend them unless your framework has poor web components support.
-
HTML with Superpowers: An Introduction to Web Components
VueJS actually fails some advanced tests for WebComponents: https://custom-elements-everywhere.com/
So, VueJS docs are actually incorrect when they say it scores 100%. The actual score is 90%.
I had reported this 8 months ago.
-
Building Web Components 101 - Part 1
Since Web Components are supported natively by browsers, they can be used in any libraries and frameworks either directly or with configurations. https://custom-elements-everywhere.com/ is a great site to check custom elements support status by different libraries and frameworks.
- Check if a library/framework supports the usage of custom elements
- custom-elements-everywhere.com: Check if a library/framework supports the usage of custom elements
single-spa
-
Managing View State and Client-side Routing in SPAs
At JupiterOne, we've made a significant transition from a monolithic frontend to a distributed frontend architecture using microfrontends, powered by (single-spa-react)[https://single-spa.js.org/]. This architectural shift has brought many benefits, such as lazy loading sections of the app and accelerating our development cycle. However, like any significant change, it has also come with its set of challenges.
-
Micro frontend frameworks in 2024
Single-SPA Framework - One of the most popular choices. It has a large community behind it and offers robust routing and lifecycle management for microapps. Ref - https://single-spa.js.org/
-
⏰ It’s time to talk about Import Map, Micro Frontend, and Nx Monorepo
Joel Denning is the visionary behind single-spa, boasting profound insights into the true mechanics of the web and is, in my view, a pioneer in micro frontend architecture. I highly recommend checking the single-spa website and his YouTube channel. While the videos might appear dated at first glance, rest assured, Joel is ahead of his time, and the content remains incredibly relevant today.
-
Single-SPA and Svelte advices.
You got me curious and I found that single spa is something new to me - if I read https://github.com/single-spa/single-spa then I reckon you can use Svelte(Kit) in such framework - like you can use angular etc
- Speed Run de MicroFrontends com Single-SPA (any%)
-
Use web components for what they’re good at
I’ve actually done that “web components as the interoperability layer”!
It was this old angular 1.8 app with new features being written in angular-hybrid-ized angular 8. Ripping out angular-hybrid and separating the angular 1.8 routes from the modern angular routes was difficult, but now they were totally separate.
The only thing linking them together was an object with some RXJS streams in it for state, and a little in-house wrapper “app” who just loaded one component or another depending on the URL and a hash of routes for config. (I’d probably use SingleSPA [1] now. Same thing really.)
We could deploy them separately since the build just ends up being another JS file somewhere that just gets included with a script tag at runtime. No version bumping! No big mega build!
We started replacing the remaining “old” routes 1 by 1 with a “new” counter part. That was the easiest part, and went at a pace devs were comfortable with (fast enough) and business folk could tolerate. (modular enough to not HAVE to be done all at once)
Last I checked, the angular 1.8 stuff is gone years ago. :)
[1] https://single-spa.js.org/
-
Micro-frontend with Module Federations [Part 1] - Vite
Module Federation is not the unique solution, for example single-spa
-
Vue 2 EOL
You may want to look into using single-spa to run Vue 2 and Vue 3 side by side while you're migrating. Once your app is fully converted, you can stop using single-spa
- Angular et micro front-end : conseils et à la recherche d'un bon tuto
-
Building a Large Scale Micro-frontend Application.
Single-SPA and module federation are potent tools for building scalable micro-frontends. Single-spa provides a framework for building a modular front-end application. It allows lazy loading of micro-frontends, which helps improve the application's performance. In contrast, module federation enables communication and dependency sharing between different micro-frontends. It reduces code duplication, which can help with scaling an application.
What are some alternatives?
stencil - A toolchain for building scalable, enterprise-ready component systems on top of TypeScript and Web Component standards. Stencil components can be distributed natively to React, Angular, Vue, and traditional web developers from a single, framework-agnostic codebase.
nx - Smart Monorepos · Fast CI
details-dialog-element - A modal dialog that's opened with <details>.
Bit - A build system for development of composable software.
hybrids - Extraordinary JavaScript UI framework with unique declarative and functional architecture
qiankun - 📦 🚀 Blazing fast, simple and complete solution for micro frontends.
feelback-integrations - Feelback SDKs, integrations libraries and samples
piral - Framework for next generation web apps using micro frontends. :rocket:
astro - The web framework for content-driven websites. ⭐️ Star to support our work!
FrintJS - Modular JavaScript framework for building scalable and reactive applications
web-vitals - Essential metrics for a healthy site.
lerna - :dragon: Lerna is a fast, modern build system for managing and publishing multiple JavaScript/TypeScript packages from the same repository.