Web development would have taken a different direction if new frameworks did not idealized React as much. React solved a lot of problems which weren’t there in the first place.
Virtual DOM,
If a framework is still using it, it is out of the race. DOM diffing should be surgical or done while compiling. Diffing is expensive. Read why?
JSX
JSX is doing a disservice to the HTML developers. Why can’t JS and HTML be separate? Why are you forcing devs to use different attributes?
I cannot tell you how many times I have written className
where it was supposed to be class
.
Runtime
If a framework needs one then it is adding boilerplate code. Most frameworks these days compile into vanilla JavaScript and work without a runtime.
Style tags
If a framework does not support <style></style>
tags then it is not a good framework.
Support for HTML
If a framework does not support simple HTML tags then it may not be good for the developer experience. This is again about JSX. Imagine that I’m a web developer with a little knowledge about JS. Assume that I have created a lot of websites that do not use JS at all.
Now if I have to switch to React, I will have to learn JS in detail because React uses JS for everything.
I cannot write a simple <p>
tag without importing react, creating a function which returns JSX with a p tag in it. you can forget about using <style>
tags.
HTML, CSS and JS in a single file
If a framework doesn’t support the use of HTML, CSS & JS in their natural form then it may not provide a good developer experience.
The reason why SASS is pretty famous among the CSS preprocessors is because even if you write plain old CSS in SCSS files, it works without throwing an error. It is basically CSS with some super-powers.
A web framework(which should be the right name) should support plain old HTML, CSS, & JS like a normal HTML document. You can add super-powers to a HTML file, which should be optional. This will help onboard a lot of we developers.
In Svelte, you can use plain old HTML, CSS, and JS in a single file. So a web component in Svelte feels complete compared to any other framework.