Frameworks, NPM, MVS, Typescript, ES6, JQuery is so passe! A lot has changed over the last couple of years and that's a good thing. But, which tool to use?
My plan was to use the framework on a project, learning curves are ok, but delivering results is vital!
At first I looked at React. It seems all the cool kids where using it, so there must be something to it. At the very least it's a good skill set to have.
However, there is a real learning curve with React. It also seems very component focused where HTML, CSS and code is stored in the same file.
Sorry React, too hot.
Alas, AngularJS's days are numbered. No more new releases, support ends in 2021. The message is clear, this is a dead-end for future development.
Angular 2 is an option, more robust than JS. I tried it, but it felt a lot like React with its complexity. I know they're not the same, this is a generalization, but it was still a major shift in a direction I didn't want to go.
Angular was too cold.
Vue was the new kid on the block and was inspired by AngularJS -- ok, that got my attention! So, I got out my coding spoon and had a taste.
Vue does use components which is great for the DRY (Do not Repeat Yourself) principle. It makes sense to build one component for code used in multiple screens. When writing HTML for your Vue component, you can keep it in the script file, or you can separate it out into another file. It's your choice -- and I like that.
Because Vue is small and easy to insert anywhere, it's a good choice for upgrading existing projects gradually. For example, an older app using jQuery can handle Vue coding. It's easy to insert it, you don't have to refactor everything, but you will see improvements because of Vue's data binding etc. That's an easy sell to a client as opposed to a full re-write.
Vue's learning curve is fairly flat.
Vue is flexible.
Whether you're adding a little functionality or creating a large project, Vue is designed to handle it.
Vue has a future, and if it doesn't, you still have your code.
Vue is just right.
The opinions stated above are just that -- opinions -- based on my experience and point of view. I approached each framework with an open mind and still have that openness to them. Dogma be damned, I just want something I can use that will do the job. Right now, Vue 'sparks joy' for me. If you're looking for a framework, have a look at it and see what it does for you.