So I’ve had some interesting conversations around my latest article and wanted to share some further insights. Overall I’m impressed with the feedback I’ve gotten. I thought I would get more arguments that I am wrong, but instead people have understood these are preferences and they may have other opinions.
The first thing to note is that I left out the Qwik framework from my comparison. This is mainly because I feel like I don’t have enough experience with it to judge it. It has some interesting concepts that you should definately keep an eye out for.
The other thing to note is that in some ways I’m comparing the old Angular to a newer Solid which is kinda unfair. Overall I like the direction Angular is heading with the addition of signals and standalone components.
One person rightly shared that you can use JSX with Vue which I omitted. It’s very similar to React/Solid in that regard but I have not personally used Vue and JSX together so not much more I can say on that. I feel you can do most things with Vue, its just a bit less opinionated than I’d like.
The other thing I was made aware of is Solid’s JSX is a bit different than React’s. It does different syntactical things such as
For components. This blurs the line a bit when it comes to compilers but I feel its still in a realm I like.
Another thing I mentioned is the TypeScript integration which I must say Vue seems light years ahead of Angular’s. In Angular you can do something like
*ngIf="showCollapse; else nonCollapse and have the
nonCollapse be a template far away from this condition. In Vue however it is more sensible by having the
v-else have to be a sibling.
<div v-if="showCollapse"></div> <div v-else></div>
Functions Over Classes
Another person mentioned to be that “composition over inheritance” does not just apply to functions, but can be thought of for classes as well.
I feel its not as easy to do properly, and just going straight to pure functions makes more sense for me.
If there is anything else I missed or something you’d like to talk about I’m all ears.