DEV Community

SparkedScience
SparkedScience

Posted on • Updated on

Time for JS and the many confusing libraries and packages

Hello-world

Some JS frameworks are easy to use. Others don't make it easy to get started. We're looking at Vue, Angular, React, and StencilJS, and I am really floundering at this intro.

Similarities

Right off the bat, all of the boilerplate projects have package.json files, since it is required. From there, the similarities become less apparent. They all are to create a component, but Vue is a bit vague on that front.

Vue

Vue calls their web components just components, which can be a bit confusing at times. Vue is the only one to have a custom file type of .vue. It still uses JS, but Vue has some specific functions. It is also very reactive as it has special calls to handle any event in its lifecycle. I was able to create my starter project from the Vue-cli interface.

Angular

Angular stands out as it is the only one to not use npm for building and testing. It instead uses the ng command, which is specific to Angular. Angular is also mean in that it uses typescript files, which are just annoying and borderline gatekeeping.

React

The React boilerplate we found is a mess of files, but it is very well documented (GitHub linked at the end). They boast a host of fast features and high coverage and compatibility. Not much to say on this one other than it is large and fast.

StencilJS

The outlier, StencilJS, is not a framework. StencilJS is a toolchain to generate projects. Sadly, StencilJS also uses TypeScript files, so it is not the best choice. But the fact that it isn't a framework that a programmer doesn't have to learn a new language is a huge improvement over the others.

My Personal Choice

Out of the four, I would use Vue to build a website tomorrow. I might have a bit of bias because I already work with it, but being able to create an app or web-component from the command line instead of someone else's GitHub repo is amazing. Vue also works great with API calls and data. It is also highly reactive and has a large number of tools for analyzing and debugging.

GitHub

Top comments (0)