For the last couple of years, I’ve been dabbling with a few side/hobby projects. Several of these have been in the form of a Single Page App (SPA). There is a lot of appeal to that with the modern web. The question always comes up, though, which framework should I use to create my new app?
Choosing a framework is a lot like choosing a place to live. You’re going to be spending a lot of time there, and there will be aspects you like, and things you’d like to change, but can’t always. It’s beneficial to be thoughtful, but when all is said and done, you’re not really going to know how much you like it or how well it works for you until you spend some time there.
I’ve come to a simple conclusion on which framework to choose on this as well. Choose the one that you’re most comfortable with and that makes the most sense to you. It’s mostly a matter of taste. Each of the frameworks I listed are all in active development and have strong communities surrounding them. They all have their pros and cons, and those pros and cons will change depending on who you ask. You will never, I repeat, never get a definitive answer as to which one is “better”.
So, you should try them each out, look at their example programs, try running one, search for a few things that you’re trying to accomplish and see if there are any examples out there, and pick the one that makes the most sense for you and your project. If you are part of a team that is starting a new project, see what experience the others in your team have with any of them. If you’re a solo developer, then just pick one and immerse yourself into it.
Myself? I only wish I had started with one of these for my latest large project, it would be much easier now than trying to migrate it from a server side solution. At the time, however, it made more sense to just go with something I could get to minimum viable product with quickly. Now that it’s there, I’m going to be migrating to VueJS.
My reason for choosing VueJS is two-fold. First, VueJS makes a lot of sense to me with how it handles components and reactivity. Second, I’m also creating a mobile app for it, so I can re-use a lot of the code between NativeScript Vue on the mobile side and VueJS on the web side. It really came down to personal taste, though.