still SAMe ? Compare Ang, Rea, Vue !

still SAMe ? Compare Ang, Rea, Vue !

2022 again Compared Angular, React, Vue

Choosing a JavaScript development framework for web applications can be a mind-bending exercise. Angular and React are very popular these days, and the recent upstart VueJS has also attracted a lot of attention. What's more, these are just some up-and-coming stars .

So how do we choose which framework to use? Listing their pros and cons is excellent. We'll do it the way we did in the previous article, " 9 Steps: Choosing a Technology Stack for Your Web Application ".

Before You Begin -- Are You Applying Single-Page Web Application Development?

First you need to figure out whether you need a single page application (SPA) or a multi-page approach. Read more about this in my blog post, " Single Page Applications (SPA) vs. Multipage Web Applications (MPA) " (coming soon, follow me on Twitter for updates).

Today's Debut: Angular, React, and Vue

First, I would like to discuss from the perspective of life cycle and strategic considerations . We then discuss the features and concepts of these three JavaScript frameworks . Finally, we draw conclusions .

Here's what we're going to tackle today:

  • How mature are these frameworks or libraries ?
  • Are these frameworks just a fad ?
  • How big is the corresponding community for these frameworks, and how much help can they get ?
  • Is it easy to find each framework developer ?
  • What are the basic programming concepts of these frameworks ?
  • Is the framework easy to use for small or large applications ?
  • What is the learning curve for each framework ?
  • What performance do you expect from these frameworks ?
  • Where can I carefully understand the underlying principles ?
  • Can you develop with the framework of your choice ?

Get ready to hear me out!

Life cycle and strategic considerations

some history

Angular is a Javascript framework based on TypeScript. Developed and maintained by Google, it is described as "a super powerful JavaScript MVW framework". Angular (also known as "Angular 2+", "Angular 2" or "ng2") has been rewritten to be incompatible with AngularJS (also known as "Angular.js" or "AngularJS 1.x") Subsequent versions. When AngularJS (old version) was originally released in October 2010, bugs were still being fixed , etc. - the new Angular (sans JS) came out in September 2016 with version 2. The latest major version is 4 because version 3 was skipped . Google, Vine, Wix, Udemy, weather.com, healthcare.gov, and Forbes all use Angular (according to data provided by madewithangular , stackshare, and libscore.com ) .

React is described as "a JavaScript library for building user interfaces". React was originally released in March 2013 and is developed and maintained by Facebook, which uses React components on multiple pages (but not as a single-page application). According to this article by Chris Cordle , React is far more used on Facebook than Angular is used on Google. React is also used by Airbnb, Uber, Netflix, Twitter, Pinterest, Reddit, Udemy, Wix, Paypal, Imgur, Feedly, Stripe, Tumblr, Walmart, etc. (according to data provided by Facebook , stackshare and libscore.com ).

Facebook is developing React Fiber . It will change the underlying React - rendering speed should be faster - but after the change, the version will be backwards compatible. Facebook will discuss the new changes at its developer conference in April 2017 and publish an unofficial article about the new architecture . React Fiber may be released with React 16.

Vue is one of the fastest growing JS frameworks in 2016. Vue describes itself as a " MVVM framework for building intuitive, fast and componentized interactive interfaces". It was first released in February 2014 by ex-Google employee Evan You (btw: You Yuxi published a blog post about vue's first week of marketing activities and data at that time ). Especially considering that Vue has managed to gain so much traction as a one-man-developed framework without the backing of a major corporation, it's certainly very successful. You Yuxi currently has a team of dozens of core developers. In 2016, version 2 was released. Vue is used by Alibaba, Baidu, Expedia, Nintendo, GitLab — a list of some small projects can be found at madewithvuejs.com .

Both Angular and Vue are licensed under the MIT license , while React is licensed under the BSD3- license . There is a lot of discussion on the patent document. James Ide (ex-Facebook engineer) explains the reasoning and history behind patent filings : Facebook's patent licensing is the ability to share its code while protecting itself from patent lawsuits. The patent filing was updated once, and some people claim that it's okay to use React if your company isn't going to sue Facebook. You can check out the discussion on this issue on Github . I'm not a lawyer, so if the React license is an issue for you or your company, you should decide for yourself. There are many more articles on this topic: Dennis Walsh , Why You Shouldn't Be Afraid . Raúl Kripalani warns against startups using React , and he wrote a memo overview . Also, there's a recent announcement on Facebook: Explaining React's license .

core development

As mentioned earlier, Angular and React are supported and used by big companies. Facebook, Instagram and WhatsApp are using React for their pages. Google uses Angular in many projects, for example, the new Adwords UI is using Angular and Dart . However, Vue is implemented by a group of individuals supported through Patreon and other sponsorships, for better or worse you decide. Matthias G?tzke believes that the benefit of Vue's small team is that it uses more concise and less over-designed code or API .

Let's look at some stats: Angular lists 36 people on the team page , Vue lists 16 , and React has no team page. On Github , Angular has 25,000+ stars and 463 code contributors, React has 70,000+ stars and 1,000+ code contributors, and Vue has nearly 60,000 stars and only 120 code contributors. You can also check out the Github Star history for Angular, React and Vue . Another illustration of the trend of Vue seems to be good. According to the data provided by bestof.js , in the past three months, Angular 2 has received an average of 31 stars per day, React has 74 stars, and Vue.JS has 107 stars.

Data Sources

UPDATE : Thanks to Paul Henschel for suggesting npm trends . The npm trend shows the number of downloads of npm packages, which is more useful than looking at Github stars alone:

market life cycle

It is difficult to compare Angular, React and Vue in Google Trends due to various names and versions. An approximate approach could be a search in the category "Internet & Technology". The result is as follows:

Vue wasn't created before 2014 - so something is wrong here. La Vue is French for "view", "sight" or "opinion". Maybe that's it. It's also unfair to compare "VueJS" to "Angular" or "React" because VueJS barely turns up anything.

Let's try something else then. ThoughtWorks' Technology Radar technology changes over time. ThoughtWorks' Technology Radar is impressive as technology evolves over time. Redux is in the adoption phase (adopted by ThoughtWorks projects!), and it's been invaluable in many ThoughtWorks projects. Vue.js is in beta (tried to use). Vue is described as a lightweight and flexible alternative to Angular with a smooth learning curve. Angular 2 is currently being used in the evaluation phase - has been successfully implemented by the ThoughtWork team, but is not yet strongly recommended.

According to the latest survey by Stackoverflow in 2017, among the surveyed developers, 67% like React and 52% like AngularJS. AngularJS (48%) and React (33%) accounted for a higher number of developers who were "not interested in continuing to use in development". In both cases, Vue is not in the top ten. Then there's the statejs.com survey comparing " front-end frameworks ". Most interesting fact: React and Angular have 100% awareness, 23% of respondents don't know Vue. Regarding satisfaction, 92% of respondents would “use” React again, Vue 89%, and Angular 2 only 65%.

What about customer satisfaction surveys? Eric Elliott started evaluating Angular 2 and React in October 2016. Only 38% of respondents would use Angular 2 again, while 84% would use React again.

Long-term support and migration

Facebook states in its design principles that the React API is very stable. There are also scripts that help you move from the current API to newer versions: check out react-codemod . Migrating is very easy, there's no such thing (needed) as long-term supported releases. As noted in this Reddit post, people see that upgrading has never been a problem . The React team wrote a blog post about their versioning scheme . When they add a deprecation warning, they leave the rest of the current version until the behavior changes in the next major version. There are no plans to change to new major versions - v14 was released in October 2015, v15 was released in April 2016, and v16 has no release date yet. (Translator's Note: v16 was released at the end of September 2017 ) React core developers recently pointed out that upgrading should not be a problem.

Regarding Angular, since the v2 release, there is a blog post about version management and releasing Angular . There will be a major update every six months, with at least a six-month period (two major releases). There are some experimental APIs marked with a shorter deprecation period in the documentation. There is no official announcement yet, but according to this post , the Angular team has announced a long-term support release starting with Angular 4. These will be supported for at least one year after the next major release. This means that Angular 4 will be supported with bug fixes and critical patches until at least September 2018 . In most cases, updating Angular from v2 to v4 is as simple as updating the Angular dependencies. Angular also provides an informative guide on whether further changes are required .

The Vue 1.x to 2.0 update process should be easy for a small application - the developer team has claimed that 90% of the API remains the same. There is a nice upgrade-diagnostic-migration-assist tool on the console. One developer noted that updating from v1 to v2 remains unchallenged in larger applications. Unfortunately, there is no clear (public) path to next major release or planned information about LTS releases.

One more thing: Angular is a complete framework that offers a lot of things bundled together. React is more flexible than Angular, and you're likely to use more independent, unstable, and rapidly updating libraries - which means you'll need to maintain the corresponding updates and migrations yourself. It could also be a disadvantage if some packages are no longer maintained, or some other packages become de facto standards at some point.

Human Resources and Recruitment

If your team has HTML developers who don't need to know more about Javascript technology, Angular or Vue is the best choice. React requires knowledge of more JavaScript techniques (we'll get to that later).

Does your team have designers who can code while working? User "pier25" on Reddit pointed out that if you work at Facebook, where everyone is a senior developer, React makes sense . In reality, however, you won't always find a designer who can modify JSX, so using HTML templates will be easier.

The nice thing about the Angular framework is that a new Angular 2 developer from another company will quickly become familiar with all the necessary conventions. React projects vary in their architectural decisions, and developers need to be familiar with specific project setups.

Angular is also a good choice if your developers have an object-oriented background or don't like Javascript. To drive the point forward, here is Mahesh Chand quoting :

I'm not a JavaScript developer. My background is building large enterprise systems using "real" software platforms. I've been building applications in C, C++, Pascal, Ada and Fortran since 1997. (...) I can clearly say that JavaScript sounds like gibberish to me. As a Microsoft MVP and expert, I have a good understanding of TypeScript. I also don't think Facebook is a software development company. However, Google and Microsoft are already the biggest software innovators. I feel more comfortable using a product with strong support from Google and Microsoft. Also(...) with my background, I know that Microsoft has a bigger picture for TypeScript.

emmmmmmmmm... I should mention that Mahesh is a Regional Director at Microsoft.

Comparison of React, Angular and Vue

components

The frameworks we've discussed are all component-based. A component gets an input, and after some internal behavior/calculations, it returns a rendered UI template (a login/logout area or a todo list item) as output. Defined components should be easy to reuse in web pages or other components. For example, you can use a grid component (consisting of a header component and multiple row components) with various properties (columns, header information, data rows, etc.) and be able to use the component on another page with a different data set . Here 's a comprehensive article on components if you want to learn more about this.

Both React and Vue are good at handling components: small stateless functions that take input and return elements as output.

Typescript, ES6 and ES5

React focuses on using Javascript ES6. Vue uses Javascript ES5 or ES6.

Angular depends on TypeScript. This provides more consistency across related examples and open source projects (React examples can be found in ES5 or ES6). This also introduces concepts like decorators and static typing. Static typing is very useful for code intelligence tools like automatic refactoring, jump to definition, etc. - they also reduce the number of bugs in your application, although of course there is no consensus on this topic. Eric Elliott disagrees with the above in his article " The Shocking Secret of Static Types ". Daniel C Wang said that there is no harm in using static typing , and it is good to have test-driven development (TDD) and static typing at the same time.

You should also know that you can enable type checking in React using Flow . This is Facebook's static type checker for JavaScript. Flow can also be integrated into VueJS .

If you're writing code in TypeScript, you don't need to write standard JavaScript anymore. Despite its constant development, TypeScript's user base is still small compared to the JavaScript language as a whole. One risk could be that you're going in the wrong direction, since it's possible - perhaps less likely - that TypeScript will disappear over time as well. Also, TypeScript adds a lot of (learning) overhead to the project - you can read more about this in Eric Elliott 's Angular 2 vs. React comparison .

UPDATE : James Ravenscroft wrote in a comment to this post that TypeScript has first-class support for JSX - allowing for seamless type checking of components. So, if you like TypeScript and you want to use React, this shouldn't be a problem.

Templates - JSX or HTML

React breaks long-standing best practices. For decades, developers have tried to separate UI templates and inline Javascript logic, but with JSX, these are mixed again. This sounds terrible, but you should listen to Peter Hunt's talk " React: Rethinking Best Practices " (October 2013). He points out that separating templates and logic is just a separation of technology, not a separation of concerns. You should build components not templates. Components are reusable, composable, and unit-testable.

JSX is an optional preprocessor for HTML-like syntax and subsequent compilation in JavaScript. JSX has some quirks -- for example, you need to use className instead of class, since the latter is a reserved word in Javascript. JSX is a great advantage for development, because the code is written in the same place, allowing better inspection of the work product when the code is completed and compiled. When you make a typo in JSX, React won't compile and print out the line number of the error. Angular 2 fails silently at runtime (this parameter may be invalid if using precompilation in Angular).

JSX means that everything in React is Javascript -- for JSX templates and logic. Cory House points out in a January 2016 article : "Angular 2 continues to put 'JS' in HTML. React puts 'HTML' in JS." This is a good thing, because Javascript is more powerful than HTML.

Angular templates enhance HTML with special Angular syntax such as ngIf or ngFor. While React requires knowledge of JavaScript, Angular forces you to learn Angular-specific syntax .

Vue has " single file components ". This seems to be a tradeoff for separation of concerns - templates, scripts and styles are in one file, but in three different ordered sections. This means you get syntax highlighting, CSS support and easier use of preprocessors like Jade or SCSS. I've read elsewhere that JSX is easier to debug because Vue won't show syntax errors for non-standard HTML. This is incorrect because Vue transforms the HTML to render the function - so the error shows no problem (thanks to Vinicius Reis for the comment and correction!).

Sidenote: If you like the idea of JSX and want to use it in Vue, you can use babel-plugin-transform-vue-jsx .

Frameworks and Libraries

Angular is a framework rather than a library because it provides strong constraints on how to build applications and also provides more functionality out of the box. Angular is a "complete solution" - fully functional, and you can happily start developing. You don't need to research libraries, routing solutions or anything like that - you just get to work.

On the other hand, React and Vue are very flexible. Their libraries can be paired with various packages. ( There are many React packages on npm , but Vue packages are relatively small, because after all, this framework is still relatively new). With React, you can even swap out API-compatible alternatives to the library itself, like Inferno . However, with great flexibility comes great responsibility - React has no rules and limited guidance. Every project needs to decide on the architecture, and things can be more prone to error.

On the other hand, Angular also has a confusing mix of build tools, boilerplate, linters, and time slices to deal with. The same goes for React if you use project starter kits or boilerplate. They're naturally very helpful, but React works out of the box, and that's probably the way you should learn it. Working in a JavaScript environment with various tools is sometimes referred to as "Javascript fatigue". Eric Clemmons says in his article :

When starting to use the framework, there are a bunch of installed tools that you might not be used to. These are frame generated. Many developers don't understand what's going on inside the framework -- or it takes a lot of time to figure it out.

Vue seems to be the most lightweight of the three frameworks. GitLab has a blog post about the decision for Vue.js (October 2016) :

Vue.js is the perfect balance between what it will do for you and what you need it to do. (...) Vue.js is always within reach, a solid, yet flexible safety net that guarantees programming efficiency and minimal pain from manipulating the DOM.

They like simplicity and ease of use - the source code is very readable and doesn't require any documentation or external libraries. Everything is very simple. Vue.js "doesn't make big assumptions about anything". There is also a podcast episode about the GitLab decision .

Another blog post from Pixeljets about the transition to Vue . React "was a huge step forward in consciousness for the JS world , showing people what real functional programming is in a practical and concise way. One of the big downsides of React compared to Vue is due to the limitations of JSX , the granularity of the components will be smaller. Here is a quote from the article:

For me and my team, code readability is important, but it's also very important that coding is fun. Creating 6 components is not surprising when implementing a really simple calculator widget. It's also bad in many cases in terms of maintaining, modifying or visually inspecting a certain widget, since you need to go around multiple files/functions and inspect each small piece of HTML separately. Again, I'm not suggesting writing monoliths - I'm suggesting using components instead of microcomponents in day-to-day development.

Interesting discussions on Hacker news and blog posts on Reddit - There are arguments from Vue dissenters and further supporters.

State management and data binding

Building user interfaces is difficult because there is state everywhere - data that changes over time introduces complexity. A defined state workflow helps a lot with application growth and complexity. For applications with low complexity, there is no need to define the state flow, like native JS is enough.

How does it work? Components describe the UI at any point in time. When the data changes, the framework re-renders the entire UI component - the displayed data is always up to date. We can call this concept "UI as Function".

React is often used together with Redux. Redux speaks from three basic principles :

  • Single source of truth
  • State is read-only (State is read-only)
  • Changes are made with pure functions

In other words: the state of the entire application is stored in a single store's state tree. This helps to debug the application and some functions are easier to implement. The state is read-only and can only be changed by actions to avoid race conditions (this also helps with debugging). Write a Reducer to specify how to transform state through actions.

Most tutorials and boilerplate already have Redux integrated, but you can use React without it (and you probably don't need Redux in your project). Redux introduces complexity and fairly strong constraints into the code. If you're learning React, you should consider learning pure React before you try Redux. You should definitely read " You Probably Don't Need Redux " by Dan Abramov .

Some developers suggest using Mobx instead of Redux . You can think of it as an "automatic Redux", which makes things easier to use and understand from the start. If you want to understand, you should start with the introduction . You can also read Robin 's comparison of Redux and MobX . He also provides information on migrating from Redux to MobX . This list is very useful if you want to find other Flux libraries . If you're coming from the MVC world, then you should read Mikhail Levkovsky 's article " Thinking in Redux (when all you know is MVC) ".

Vue can use Redux, but it provides Vuex as its own solution.

The big difference between React and Angular is one-way vs. two-way binding . Angular's two-way binding changes the model state when UI elements (eg, user input) are updated. React has only one method: first update the model, then render the UI elements. The Angular way is cleaner and easier for developers to implement. The React way will have a better overview of the data, since data can only flow in one direction (which makes debugging easier).

Both concepts have pros and cons. You need to understand these concepts and determine if this affects your choice of framework. The article " Two-Way Data Binding: Angular 2 and React " and this Stackoverflow question both provide a good explanation. Here you can find some interactive code examples (3 years old example (, only for Angular 1 and React). Finally, Vue supports both one-way binding and two-way binding (one-way binding is the default).

If you want to read further, here's a long article on the different types of state and state management in Angular applications ( Victor Savkin ).

Other programming concepts

Angular includes dependency injection, a pattern in which one object provides dependencies (services) to another object (client). This results in more flexibility and cleaner code. The article " Understanding Dependency Injection " explains this concept in more detail.

The Model-View-Controller pattern (MVC) divides a project into three parts: Model, View, and Controller. Angular (the framework for the MVC pattern) has MVC features out of the box. React only has V - you need to figure out M and C yourself.

Flexibility and simplification to microservices

You can use React or Vue's JavaScript libraries by just adding them to your source code. But since Angular uses TypeScript, you can't use Angular like this.

Now we are moving more towards microservices and microapps. React and Vue give you more control over the size of your app by only picking what you really need. They provide a more flexible way to move parts of an old application from a single page application (SPA) to microservices. Angular is best suited for single page applications (SPAs) as it can be too bloated for microservices.

As Cory House puts it:

JavaScript evolves fast, and React lets you replace a small part of your application with a better JS library instead of expecting your framework to innovate. The idea of a small, composable single-purpose tool will never go out of style .

Some people also use React for non-single-page sites (e.g. complex forms or wizards). Even Facebook doesn't use React on Facebook's homepage, but on specific pages to achieve specific functions.

size and performance

No framework is perfect: the Angular framework is bloated. The gzipped file size is 143k, compared to 23k for Vue and 43k for React.

To improve performance, both React and Vue use virtual DOM (Virtual DOM). If you're interested, you can read about the difference between virtual DOM and DOM and the practical advantages of virtual DOM in react.js . Also, one of the authors of Virtual DOM answers performance related questions on Stackoverflow .

To check the performance, I took a look at the best js framework benchmarks . You can download and run it yourself, or view the interactive results table .

Angular, React and Vue performance comparison ( source file )

memory allocation ( source file )

To sum up: Vue has very good performance and deep memory allocation skills. These frameworks are very close, if faster (like Inferno ). Remember that performance benchmarks should only be considered as a side note, not as a criterion.

test

Facebook uses Jest to test its React code. Here 's an article comparing Jest and Mocha -- and an article on how Enzyme and Mocha work together . Enzyme is a JavaScript testing tool used by Airbnb (with Jest, Karma and other testing frameworks). If you want to learn more, there are some old articles about testing in React ( here and here ).

Angular 2 uses Jasmine as a testing framework. Eric Elliott complained in an article that Jasmine "has hundreds of ways to test and assert, and you need to read each one carefully to understand what it's doing". The output is also very bloated and hard to read. Some useful articles on Angular 2 integration with Karma and Mocha . Here 's an old video (from 2015) about testing strategies for Angular 2 .

Vue lacks testing guidance, but Evan wrote in his 2017 outlook that the team plans to work on this . They recommend using Karma . Vue is used in conjunction with Jest , and avoriaz as a testing tool .

Universal and native apps

Universal apps are bringing apps to the web, to the desktop, and into the world of native apps.

Both React and Angular support native development. Angular has NativeScript (powered by Telerik) for native apps and the Ionic framework for hybrid development. With React, you can try react-native-renderer to build cross-platform iOS and Android apps, or react-native to develop native apps. Many apps (including Facebook; see more demos ) are built with react-native.

The Javascript framework renders the page on the client. This is bad for performance, overall user experience and SEO. Server-side pre-rendering is a good idea. All three frameworks have corresponding libraries to implement server-side rendering. React has next.js, Vue has nuxt.js, and Angular has... Angular Universal .

learning curve

Angular does have a steep learning curve. It's fully documented, but you might still cry because it's easier said than done . Even if you have a deep understanding of Javascript, you need to understand the underlying principles of the framework. De-initializing the project is magic, it pulls in a lot of packages and code. Because there is a large, pre-existing ecosystem that you need to learn over time, which is not good. On the other hand, since a lot of decisions have already been made, it might be fine in a particular situation. With React, you may need to make a lot of big decisions about third-party libraries. There are 16 different flux packages to choose from for state management in React alone .

Vue is easy to learn. Companies turned to Vue because it seemed easier for junior developers. Here's an article explaining why their team switched from Angular to Vue . Another user said his company's React app was so complex that new developers couldn't keep up with the code. With Vue, the gap between junior and senior developers is narrowed, they can collaborate more easily, have fewer bugs, and spend less time solving problems.

Some people say they can do better with React than with Vue. If you're an inexperienced Javascript developer - or if you've primarily used jQuery for the past decade, then you should consider Vue. The shift in mindset is even more pronounced when moving to React. Vue looks more like plain Javascript, but also introduces some new concepts: components, event-driven model and one-way data flow. It's also a small portion.

Meanwhile, Angular and React have their own implementations. They can limit you as you need to adjust your approach to develop smoothly. This can be a disadvantage since you can't do whatever you want and the learning curve is steep. This can also be a benefit since you have to learn the correct concepts when learning the technology. With Vue, you can do it the old way. This might be easier to get started at first, but problems can arise in the long run.

Less black magic with React and Vue is a plus when it comes to debugging. Finding bugs is easier because there are fewer places to look, and the difference between your own code and those libraries is more obvious in stack traces. People who use React report that they never have to read the library's source code. However, when debugging an Angular application, you often need to debug Angular's internals to understand the underlying model. On the bright side, as of Angular 4, error messages should be clearer and more informative.

The underlying principles of Angular, React and Vue

Do you want to read the source code yourself? Do you want to see how things really are?

Probably start by looking at the Github repositories: React ( github.com/facebook/re… ), Angular ( github.com/angular/ang… ) and Vue ( github.com/vuejs/vue ).

What does the syntax look like? ValueCoders compares the syntax of Angular, React and Vue .

It's also easy to view in production -- along with the underlying source code. TodoMVC lists dozens of identical Todo apps, written in different Javascript frameworks - you can compare Angular , React and Vue solutions. RealWorld creates a real world application (mock-up) and they have ready solutions for Angular (4+) and React (with Redux). Development of Vue is ongoing.

You can see many real apps, here is the React solution:

Here is the Angular version of the app:

Here is the Vue version of the app:

Summarize

Now decide which framework to use

React, Angular, and Vue are all cool, and none clearly outperforms the other. Trust your instincts. One last bit of amusing cynicism that might help your decision:

The dirty little secret is that most "modern JavaScript development" has nothing to do with actually building websites -- it's building libraries or packages that can be used by people who build frameworks for people who write tutorials and teach classes. I'm not sure anyone is actually building any interactions for actual users.

Of course, this is hyperbole, but there may be a grain of truth to it. Yes, there is a lot of noise in the Javascript ecosystem. During your search, you'll likely find plenty of other attractive options -- try not to be fooled by the latest, shiny framework.

What should I choose?

If you work at Google: Angular

If you like TypeScript: Angular ( or React )

If you like object-oriented programming (OOP): Angular

If you need a how-to, framework and help: Angular

If you work at Facebook: React

If you like flexibility: React

If you like large tech ecosystems: React

If you like choosing among dozens of packages: React

If you like JS and the "everything is Javascript approach": React

If you like really clean code: Vue

If you want the gentlest learning curve: Vue

If you want the most lightweight framework: Vue

If you want to separate concerns in one file: Vue

If you work alone, or have a small team: Vue (or React)

If your app tends to get very large: Angular (or React)

If you want to build an app with react-native: React

If you want to have a lot of developers in the circle: Angular or React

If you work with designers and need clean HTML files: Angular or Vue

If you love Vue but fear the limited tech ecosystem: React

If you can't decide, learn React first , then Vue , then Angular .

So, have you made your choice?

very good! Read about how to get started with Angular, React or Vue development (coming soon, follow me on Twitter for updates).

more resources

Thank you for your attention. Did I forget something important? Do you have a different opinion? I'm always happy to get feedback.

要查看或添加评论,请登录

Ercan Arslan的更多文章

  • Iran Attact ? Helicopter

    Iran Attact ? Helicopter

    Iran Suikast to Pr?sident ??? Breack event point - you have no change to resque. Even INSIDER job - Mechanically…

    1 条评论
  • FERDüN, HAYYUN, KAYY?MUN, HAKEMUN, ADLUN, KUDD?SUN

    FERDüN, HAYYUN, KAYY?MUN, HAKEMUN, ADLUN, KUDD?SUN

    RIZK BOLLU?U ???N OKUNACAK DUA FERDüN, HAYYUN, KAYY?MUN, HAKEMUN, ADLUN, KUDD?SUN.” Ferd: Allah birdir, tektir…

    3 条评论
  • @ all - Feedback Birthday

    @ all - Feedback Birthday

    Thank you so much my lovely friends who made my day. I love you all very much for the wonderful feelings you gave me on…

    2 条评论

社区洞察

其他会员也浏览了