custom-elements-everywhere
fastdom
custom-elements-everywhere | fastdom | |
---|---|---|
19 | 4 | |
1,147 | 6,778 | |
1.6% | - | |
8.9 | 2.9 | |
2 days ago | 3 months ago | |
JavaScript | JavaScript | |
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
fastdom
-
If Web Components are so great, why am I not using them?
Now, every time we read `offsetHeight`, the browser sees that it has a scheduled DOM modification to apply, so it has to apply that first, before it can return a correct value.
This is the reason that libraries like fastdom (https://github.com/wilsonpage/fastdom) exist - they help ensure that, in a given tick, all the reads happen first, followed by all the writes.
That said, I suspect even if you add a write followed by a read to your `while(1)` experiment, it still won't actually render anything, because painting is a separate phase of the rendering process, which always happens asynchronously. But that might not be true, and I'm on mobile and can't test it myself.
- TodoMVC App Written in Vanilla JavaScript
-
Notes on the Critical Rendering Path (CRP)
batching your writes & reads to the DOM (via FastDOM or a virtual DOM implementation).
-
Performance tips for JavaScript Game Developers
For more information on how and why this works, and a more robust and complete implementation, check out the FastDom library: https://github.com/wilsonpage/fastdom - note that you might not need this particular optimization if you're using a rendering framework, which should already be doing these sorts of optimisations for you.
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.
mebm - zero-dependency browser-based video editor
details-dialog-element - A modal dialog that's opened with <details>.
react-gradual-upgrade-demo - Demonstration of how to gradually upgrade an app to a new version of React
hybrids - Extraordinary JavaScript UI framework with unique declarative and functional architecture
yhtml - Tiny html tag function for rendering Web Component templates with event binding
feelback-integrations - Feelback SDKs, integrations libraries and samples
uibuilder - Typed HTML templates using TypeScript's TSX files
astro - The web framework for content-driven websites. ⭐️ Star to support our work!
custom-elements - Using custom elements
web-vitals - Essential metrics for a healthy site.
proposal-import-attributes - Proposal for syntax to import ES modules with assertions