Angular vs React.js vs Vue.js - My Thoughts!
Вставка
- Опубліковано 17 жов 2024
- Angular, React.js or Vue.js? I get this question a lot! Let me share some thoughts on it with you!
Join the full React.js course: acad.link/reactjs
Or dive into Angular: acad.link/angular
Or explore Vue.js: acad.link/vuejs
Want to read instead of watch? Here you go! academind.com/...
Check out all our other courses: academind.com/...
----------
JS Framework Benchmark: github.com/kra...
----------
• Go to www.academind.com and subscribe to our newsletter to stay updated and to get exclusive content & discounts
• Follow @maxedapps and @academind_real on Twitter
• Join our Facebook community on / academindchannel
See you in the videos!
----------
Academind is your source for online education in the areas of web development, frontend web development, backend web development, programming, coding and data science! No matter if you are looking for a tutorial, a course, a crash course, an introduction, an online tutorial or any related video, we try our best to offer you the content you are looking for. Our topics include Angular, React, Vue, Html, CSS, JavaScript, TypeScript, Redux, Nuxt.js, RxJs, Bootstrap, Laravel, Node.js, Progressive Web Apps (PWA), Ionic, React Native, Regular Expressions (RegEx), Stencil, Power BI, Amazon Web Services (AWS), Firebase or other topics, make sure to have a look at this channel or at academind.com to find the learning resource of your choice!
That Vue is not backed by any big company is one of its biggest strengths. It created a very friendly and collegial community,where the contributors support each as the survival of everyone depends on the overall quality of the ecosystem.
Whether or not you agree with Max's conclusions, I appreciate how he acknowledges that personal bias/preference come into play when making these kinds of comparisons. So often these kinds of discussions devolve into (sometimes highly technical sounding, and sometimes not!) tribal warfare. Humility and self-awareness are SO essential in these matters; and are traits sorely lacking in our industry. While we're trained to reason well about our code, we often do that much less successfully when thinking critically about our own perspectives. Ultimately though, that can prove just as costly. It just doesn't "break" anything immediately, and so it tends to slip through the cracks much more often. Also, our various communities can be very friendly -- within the ranks. But the tone BETWEEN communities often leaves much to be desired. We can do better.
Amazing comment, I couldn't agree more. As you say, we're all biased but I never understood why would insult each other based on some strange "code religion" if in the end we're all trying to do the same thing: Build great code and therefore apps and do that with enthusiasm!
I commented this link above but I am really curious what you think of a solution to this very big problem like the following tool. It is meant to provide factual, exhaustive, objective, technical comparisons of things. The only problem is that I can't get a single person to contribute a single fact about something they know. There's so much changing information about things that it will never work with only me on the job. The data contained within comes primarily from my own readings about things, but if a few or many others pitched in it could be really helpful. www.techtradeoffs.info
Darren King that was a great comment.
Developers are not alone in their bias towards the latest fad (not that I'm saying these frameworks are a fad). It's the hype cycle I suppose and business management are similar in applying the latest greatest thinking from McKinsey year on year.
As developers we invest time in learning one framework, and as we do we identify with it more, our identity becomes rooted in the community, we need to defend our decision, we have to defend our identity, until the next fad comes along and we all retool.
Companies do not help, they expect developers to have experience in one framework and, from experience, do not hire those that need to retool into another.
The best technology doesn't necessarily become the standard. The technology company that set's the standard controls the industry.
The industry is still young.
This was a useful video Max. Thanks!
I feel a little sheepish to admit it, but after 20 years of knowing a little about a lot and a master of none, I finally have a preference! His comments really hit hit home when he talked about having to use className vs class. I took to it as an upgrade and not a deterrent. I haven't tried Vue yet but I kind of like where I with React and being able to stick a component anywhere is a huge advantage when the scope of your job is modulare. This might be in part that I'm a contractor and get tossed in to new environments all the time.
I find it funny how developers communities would be ready to attack you with full force if you mentioned using different framework or different way of working in general
Personal opinion -
Angular Pros:
1. Can be scaled to large teams
2. If you have a large team, and you are adding new members who are not super-experienced, it is less likely that their mistakes will cause catastrophic failure
3. Templates are separate - this means you can have your design team create the HTML and CSS and you can add your JS bits
4. Since all major dependencies are courtesy of the Angular team, low risk of dependency hell
Angular Cons:
1. Typescript makes things verbose, you typically would need more man hours to create the same functionality in angular than you would in React or Vue
2. Angular 1 to 2 major API breakages
3. Google uses Angular, but it is not used in their flagship products like Mail (eating your own cooking typically produces pragmatic decision making)
4. Angular JS team is seen as insular (and rightly so). Could break the APIs once again causing more grief
React Pros:
1. Componentization is a major plus, the fact that Angular 2 moved in this direction is telling
2. FB actually uses it to power their flagship product
3. Multi-device. Angular, while it has Cordova, is nowhere near as versatile as React
React Cons:
1. FB's dithering over licenses - this could cause other large companies to avoid using React - in case FB does an Oracle
2. JSX makes it difficult to separate responsibility between developer and designer
3. Lack of opinion on app structure can hurt if your devs are not used to designing and maintaining large scale front-end apps. You need to have developers who are Facebook level smart
4. NPM hell
Vue Pros:
1. Templates are separate
2. Has components
3. No Typescript as compulsory
4. No major licensing issues
Vue Cons:
1. Still young - there is a distinct chance as the framework matures unpopular choices may have to be made
2. No FB/Google scale users - largely a volunteer army. Could go the way of backbone and stop being super-actively maintained. Risk is especially triue for Vue packages
very good summary, Vikram
Usage of Typescript should be counted in PROs. But that is possibly my own biased opinion in favor of Typescript.
Typescript by choice is fine, but making typescript compulsory, I am not so sure about that. For instance, you can use React or Vue with Typescript, but they don't force you to do so
I disagree that JSX makes it any more difficult to separate responsibilities. A designer's job should be to tell you how a page should look. It's up to the developer to build that structure and put it to code.
Angular can be written using Typescript, Javascripte ES5/6, DART etc so choices are there for developer. This is a advantage with Angular.
I love how in React you just specify a single in HTML, and you can write rest of your app without leaving JS.
Having tried all three of them, think vuejs is the simplest and most easy to work with.
Petros Kyriakou I recommend all of you who think like Petros and Max- try Riot.js - it has all the Vue and React advantages but 0 bloat, no JSX, built in observable and the most simplistic and beautiful syntax. I come from AngularJS background and I do not like Angular 4 for the reason it's too big so it takes forever for your first time customers to see your app on mobile. Riot.js is king.
If I need to be honest with you, I would be pretty scared to use it in a big project.
If just about 12 thousand stars on Github don't convince you then I don't think my opinion will bring you any courage either. If you ever find yourself in need of real mobile first framework though: come back and see for yourself how we attracted so many members of communities like Preact, Inferno, Vue and Polymer.
Also answer for yourself would you rather use a compact and simple framework that You use 90% of, or large and complicated framework that you use 10% of? I don't know if you remember "Little Prince", but its author- Antoine de Saint-Exupéry said something awesome that I live my minimalist life by: Perfection is achieved, not when there is nothing more to add, but when there is nothing left to remove.
I do actually work with react native. I do really don't get it if all the things Riot.JS has are so good and the size is so important in this case, I would like to know why to Rect Facebook Team does not use Riot.JS futures and implement it into React?
Vue is beautiful! Very clean and easy to use.
That's it right there.... Vue is beautiful.
It feels good to use it. It feels natural.
React is also clean ;)
@@akiren7730 I disagree on that part. React does feel to provide more control on everything, but it does not feel clean. Feels like lot of wiring on surface. Vue on the other hand has cleaner interface for application development and gives better dev experience enabling better focus on business problem in hand. P.S. I worked with react for 2 years, switched to vue only 4 months back. :)
@@softdevstuff1008 I will give it another look thanks
LoL... "It's like angular and react have sex" - Max 2017
ChroniZz i think the same
haha... I thought he was gonna say baby but he really went for the word
Next coming. "(Laravel) It's like Rails and PHP have sex."
...That's actually kind of true :D
I'm certain that a majority of large frameworks widely used will phase into lighter weight solutions.
LargeApp.replace('Angular/React/Ember/Jquery', 'VueJs')
LargeApp.replace('PHP/Rails', 'Python')
LargeApp.replace('bootstrap/foundation', 'css grid')
just my opinion.
I Love React so much that I can't imagine not using it. I also love that it's a library and not a framework.
why you love that it's a library and not a framework?
i don't know react
coz framework forces you to do things in certain way , library usage is more optional - use it when u need it
I super super hate react..... It's just complicates matters.
React promotes top-down data flow, and the only way to loop back with data is via callback or Redux, which simulates prop injection (as opposed to specifying the HTML attribute props)
I had learned Vue and certainly suggest others to go with vue. Because not only it has an easy learning curve, but it also packed with rich features. Let's go for Vue.js
You are absolutely correct. I started learning it 2 days ago & have decided to use it for my app going forward. Bye-bye to Angular :(
Going for vue because it is so similar to knockout
How do yo learn that? Any online tutorial
If only vue native was _there._
Currently learning Angular 10 and yes having a background in C# especially with WPF and MVVM helps a lot in learning this framework.
React and Vue brings more freedom in your code than Angular. That's why in large teams it seems to be better to use Angular, because it forces your team to write code in more strict, standard and one style way. I think this is very important advantage of Angular, of which few speak. I'm behind React and Angular :)
Large teams should code review PRs then this freedom can actually become a benefit as then the team decides what architecture works best for them and that particular application rather than them being bound to premature decisions by some framework.
Robert Smith This is so true. And some things that are trivial in JSX or hyperscript takes 10x the time when using templates.
Freedom is great until you have to refactor someone else's code.
@steven That's what code reviews help negate.
Code reviews do not always protect people from their own bad habits or a team from putting out code that is difficult to maintain. None of these frameworks are full proof. You can learn all of them via tutorials and documentation. There are style guides that some choose to follow and others choose to ignore. If you can't get a soiid ui out that's on you as a team not the framework.
Hey Max...I wanted to know that I am not into redux so can I make decent react apps without redux ...Suggest some alternative please...Maybe I plan to learn it in future...Currently I am having less time and I know vuejs and vuex but only react without redux
You don't have to use Redux at all! You can build React apps without it, it's not a must!
"It's like React and Angular had sex" that made me laugh. You could have said "It's like the love child of React and Angular" but no, you went with the dirty way. Excellent.
You just solved my long time dilemma on Angular vs React. Your personal views make this video ,awesome. I have tired of reading articles and watching videos where at the end they just wrap up with saying "everything is same."
I know languages such as C++,C#,JAVA. I prefer the cleaner way like you. I don't like to sacrifice Native HTML and CSS while leveraging new framework.
Thank you. Great Great video👌👌
first i worked with angularjs, then i learned anguular 2, then i tried react, honestly i prefer react, you can manage your data easily with redux, and create great reusable components, with angular i felt that i'm restricted and should follow what the angular rules.
there is redux for angular
I agree with your thought about vue,js, I also hope vue become the most popular framework in the world
Max is a great teacher. I bought this course after 3 minutes of watching this video.
Awesome! Welcome on board Csaba!
Csaba Kiss I finally mastered angula 2+ after buying his complete angular guide. He really is a great teacher.
Keep up the good work Max!
When i try to save the (Host file) in the C:\Windows\System32\drivers\etc directory it refuses and save it a text file.
Yet i want it to just be updated,Some help pliz.
This step has made me miss alot of tutorials about laravel.
I GET THIS MESSAGE IN THE BROSWER
Your connection is not private
Attackers might be trying to steal your information from uganda.dev (for example, passwords, messages, or credit cards). Learn more
NET::ERR_CERT_AUTHORITY_INVALID
NOTE i always follow the steps in the tutorails i watch.But when it reaches that step.
It fails and loose morale to continue.
Thanks Max. I chose to learn Vue.js a few months ago and I think I did the right choice. Cheers !
Tried angular and React both! But after this video and valuable comments, will definitely try VUE.
Some of the nice things of react n angular are:
React (redux)
- learning curve
- too much work, state and store management
- Awesome Unidirectional flow
- quite hard to configure
Angular
- Easy to learn
- Complex data flow (resource shared to multiple components)
- much easy to configure and start playing with
- Many people's trust is broken now, as they did breaking changes in release candidate (you are absolutely right) e.g changes brocolli -> webpack just before few months of angular 2 official release.
Been using React for almost a year now and all I can say is that React is more focused on SPAs and only SPAs. While Vue looks like you can drop it into any existing project and add rich functionality to it.
Hey Maximilian do you think Svelte is better than the 3 now? I learnt React and now with Vue 3 I heard some very good comments on Svelte so idk if I should learn Vue or Svelte?
Academind, thanks, finally, a good, sane comparison out of all other comparisons, that I have seen. Your video has helped me to choose the right framework to learn - vue. I also prefer the separation of pure html, js and style.
Thank you very much for your great feedback! Great to read that the video helped you, I also like to work with Vue a lot :)
I enrolled to your js, es6 and vue js course. Learnt a lot from the accelarated JS course.
I think there's no wrong choice, because there is the need for each one of them. You can see that US is more React orientated, Europe to Angular, as Google trends show. As a junior developer i started with React and i like it, but now the company i work for demand us to learn 2+ and...i'm loving it. I really do find Angular easy to learn and to build real projects as a junior. All the libraries provided like rxjs, form validation and Angular Material just makes Angular pretty straight forward. And the directives, ahh i love the directives. But non the less i love both Angular and React, still want to learn Vue, and i will stick to work with Angular at work and React at home!
I really do hope Angular Material to stop existing. Angularjs Developer 3+ years, Angular 5 now for some months, started a project with angular material, hate it completely. A lot of boilerplate, adding a lot of classes for everything. Directives that won't work if their not inside other directives. A complete mess, missing documentation, stackoverflow missing entirely as people can ask only creators on git. Failure.
I personally have fiddled around with React, but never built anything to serious. With that said, I would like to share my experience in working with both Vue and Angular 2. Angular was my first framework that I learned (from your course) and after completing the course, I decided to take on a project that a friend of mine has wanted, a project management application for his construction company. I really enjoyed Angular and Typescript (coming from systems programming). As my project got bigger and bigger and more features were being added, I never found myself lost in the code I was writing due to the component modularity of Angular. I finished the project and the bugs were very little to none, due to typescripts typed nature. After learning Vue (again, from your course), I decided to write an application that has tools to help you sell better on Ebay. I loved Vue, and maybe even better than Angular because setting it up and getting started was extremely easy. As my project and original scope started to change and get bigger, I did find myself getting lost in my code where I would search through my files and finding specific functions to modify and test. BTW, Testing in Vue was a nightmare for me compared to with Angular. With my personal experience, I am concluding that if you want to write a simple application that does a few things and looks cool, use vue or react. When you have a large application, like a project management app, use angular. Side Note: To those that say react is not a framework, my answer is that it CAN be. React is similar to vue only in the context that they are both libraries, but they have tooling where if you sit down at your desk and decide to build a web application you can do it with either of those big 3 and more as a framework.
it's a good comparison - i also pick vue and it's creative vue files idea
I started off learning React, but later switched to learning Vue because of a job, then fell in love with it. Now i hope i dont have to touch React again. As for Angular, i am learning it too. I had to, because by every indication, it is still the leader of the pack.
you mean react is a waste of time!
I'm on a project with a lot of junior developers using Angular 4 on the front-end. I'm pleasantly surprised and impressed how easy it is to keep the project on rails for a large team. TypeScript helps out with that too. That might be the biggest point in using Angular above all three.
Richard Yhip vue csn use Typescript
Great opinions there, thanks!
I would argue that being backed by an active community instead of by a big company like Google or Facebook is actually a feature, not bug of Vue.js.
That's because this way we can be more sure that there won't be any conflict of interests between the community of developers that use the framework and the company that backs it (the recent controversy of React's license is the most screamingly obvious example of that)
Let me put it in perspective with an example: most developers that I know that can code in Java (Oracle), Python (Community) and C# (MS) like Python best.
Hypothesis: The community-driven evolution of Python is what led it to this point.
I see the same python-like vibe in the Vue community.
I think that Angular is the way to go in terms of future support and adoption of latest web standards like ES6-7 and beyond...and honestly, Im not a fan of React's Spaghetti code style.
Spaghetti is an understatement, i ran away in fear of my life after using react for a few days. Vuejs is clean and sleek
@@phee3D angular 2 is more clean but vuejs is more simply
I think the strong point of react is that it is component based. You can fix a button, a window or anything and everything you need is there. Just look at this youtube page, some will see it on a computer, some on an iPad, some on a smartphone(most). Each of these screen sizes will display different components and different times, so the model of html and code separation breaks. The component I am working on might be the only thing present when is used because, which tends to be the case in mobile
Vue seems the most flexible to me. You could use JSX, HTML templates, JS strings, Vue files, or VNodes. Btw I learned vue from your course
I use Vue Components because it's done in HTML, so you still get normal HTML functionality, as well as CSS (or SASS (what I use)) and JS
VUEX is awesome too, it simple than Redux!
in react you can loop through html code just like we do in php, i don't know if doing that is that simple in angular?
Good video. Vue is the go to library in laravel, should've bought that up.
I like with vue you can drop it into any project, and it works. Pretty good seo, compared to react in the same situation, as vue does transclusion, whereas all the crawler would see in react's case is a in HTML. Love the declarative nature of vue. More batteries included (router and vuex).
Yes, I bought your course too.
After giving each a good shot I go for VueJS. For the missing DI in VueJS there is vue-inject (www.npmjs.com/package/vue-inject). It would be great to get VueJS handling DI as well and better than Angular.
Something else that is important is how reactivity is handled. VueJS has it's own built-in version yet officially supports RxJS with vue-rx, which is excellent. RxJS is indispensable and gaining further insight into how these two reactive systems compliment each other in VueJS is key.
Yep, that's true - thanks for sharing that!
You aren't afraid that in the long term those little libraries like vue-inject will cease to exist for any reason?
Vue-inject is about 100 lines of code and not rocket science. How hard would it be for you to keep it up to date really if the original author goes AWOL or moves on?
My biggest concern with Vue is that the templates are separate. The reason I like React.js style templates is that you get compile time checking for things like syntax errors. In non-compiled template languages, you can run into simple syntax problems that waste tons of time to track down.
I have not used Angular since 1, so I have no opinion on Angular 2 (my understanding is there were some really major changes there).
I personally have found Angular to be my favourite to use so far. The small bit of Vue and React I've played with didn't seem all that fun or appealing to me.
Coming from C# and Java background, I've found Angular more structured and easier for me.
I have used Vue with Flask (Python) at work and that combination is so easy and manageable to use. Some otherr department use React and Golang. I will force them to use Vue :)
Firebase (or Django) + Vue + Bulma --> clean, beautiful, fast and easy
My Thoughts:
- Ideally look for one where their is Job Growth/skills is in high demand
- Identify why/what do you want to learn the language for(Work,Personal,Just an interest/hobby)
- Which framework is going to be around for a long time/updated on a regular basis
Just some of the things I would consider when learning a new language..
VueJS is great! Documentation is so easy to understand compared to React and Angular, documentation has a big role to the developer actually. Thanks for this series :)
Definitely. It's interesting to see how many languages/ frameworks don't provide good docs.
Hey Mindaspace, can u create a tutorial that will teach us how to use socket.io on vue-cli?
I really don't like the vue explanations.. I started a internship this week at a company what does very difficult vuejs stuff, can't find explanations on pretty much anything..
Thank you for this video. Angular has a steep learning curve. If you are a beginner-level programmer, attempting Angular may discourage you so much, you could get turned off to becoming a developer. Make sure you know AJAX, json, ES6, http requests, traversing the dom, call back functions and regular JavaScript well before attempting Angular is my advice.
If you plan on freelancing, then based on what I heard, I'd go with Vue. If you want a job, check job sites (indeed and dice) to see what is more in demand in your area.
Angular is both new and established, so being among the first kids on the block to learn it can give you a distinct advantage (I'm hoping). Plus you'll learn concepts that will help learn other languages (oop, classes), frameworks (MVC, modules, components), and good programming habits (TypeScript, not mixing HTML with JavaScript).
That definitely can be a factor. Vue has way less jobs BUT, as you mention, there also are way less developers knowing it.
100% agree. Finally an honest review, by a guy that seems knowledgeable on all the three frameworks. Thanks!
Thanks so much! :)
I came from a Python backend / data science background. Tried to watch vids on React and quickly realized I was in for a steep learning curve. Stumbled across VueJs. Watched a single video and it immediately clicked. I can do this! Now am halfway through my second enterprise level SPA and life is great. Using Quasar, a fantastic framework built on Vue
Why do people say Angular is harder to learn than react?
I've used both for months and I can clearly say, Angular is way way way way easier to learn and you get everything out of the box, causing way less headache.
I agree :)
Yeah, I am learning Angular 6, built my first app with nodejs. It was easy.
because in angular you need to learn a lot of new concept like
directive,module,components,services,boostraping,dependency injection and so on
compared to react you only need to learn state,props and components
you also need to learn typscript in angular while in react, jsx is just html in javascipt.
maybe it depends in your current skill set/knowledge like on my case, I came from php cms and frameworks, js/jquery and css styling while I never learn how to code in java and c#
react with redux is a different story though
I also forgot to mention you need to learn es6 syntax in react which is a good thing since it is more cleaner and can save a lot of lines compared to old plain javascript
Angular is a much bigger thing than React. React actually is a library that does one thing, and Angular tries to replace everything that JS has built in.
Hi,
sorry for spam but can you please let me know what software did you used to record the screen and you webcam? I mean the technique u used to have transparent background webcam?
Thanks
We use Adobe After Effect's KeyLight effect to get rid of the screen. You can find out more about our equipment right here ( ua-cam.com/video/LoqvkwtLBR8/v-deo.html ). We also created a video tutorial to show how we edit our videos: ua-cam.com/video/RqZqmTUOaUo/v-deo.html
I like being happy
Vue, of course!
Very good vid, glad I discovered this channel. Currently migrating from Java/J2EE/JSP/Tomcat to Node/Angular5/Ionic3.
Thank you for your great feedback Michael, happy to have you on board! In case you want to find all the content we have regarding Node, Angular and Ionic, also feel free to have a look at our website: academind.com/learn
Vue! Without any doubts.
I dropped learning Angular in the middle of your course - angular is awful.
Planned to take a look at your ionic + angular course, maybe then I will like angular again.
And React.. I don't know, after I found Vue, I understand - it's my love =)
Vue is awesome!
Care to explain why?
Oleg _WebArtisan look at electron too btw. It's very nice with vue
@Oleg_WebArtisan I too was taking his angular course and at first thought I hated it because of the instructor pace and teaching style, I dropped it and am now taking his Vue course and I realize that It wasn’t the instructor, I just just didn’t like Angular lol. Also after doing more research I realized that no major companies use it (besides weather.com) and I think it may be more powerful than what I would ever need it for.
Personally i love angular. I feel angular is better for those who don't come from a web designing back ground. I work mostly with back end programming for website and programming appliaction. Angular just clicks with me since its similair to OOP and typescript is simple to pick up for me.
Oleg _WebArtisan same here +1
Hi Academind, can you please create a video on following topics
1. How Angular change detection works? (Zonejs)
2. WebRTC
3. internationalization in Angular (i18n)
HAHAHA Y SO SERIOUS?
This is so typical. A lot of people are upset at what the guy has said because of their bias or preference. I like a lot of the responses here which just look to keep the plain field even...
1) React is a library not a framework. This is why it doesn't come with a router or form validation etc
2) All 3 of these libraries/ frameworks are awesome. Pick the one you PREFER
3) The facts are there with regards to jobs/ community and the team size (Facebook, Google, 1 guy)
4) React and Vue can be included in all kind of projects whereas Angular has to sort of be it's own project/ thing
I have worked with both React and Angular and I can appreciate both. I have a lot of experience in CSS and so I can see why Angular's way of doing styling and templating may be preferred. For a while I preferred Angular because of this. I love that. I like working in the HTML
I do think React is actually simpler to work with. It is just JavaScript and I like the way the parent-child relationships as well as how you include components in other components
Everyone just take a chill pill and understand this guy like separation of concerns and so Angular and Vue fit him better. There was a little bias against React in this video but you can tell it's a preference thing
Thanks for summing that up ;)
And just to highlight that again: Yes, I prefer Vue and Angular, I'll be honest and of course you can see that in the video. I did call React a framework because people ARE comparing it to Angular and Vue and ARE using router and Redux. If anyone isn't doing that, then the whole comparison of course doesn't make that much sense (at least not with Angular).
And I have nothing against React - just not my #1 pick
VueJS : we can use it in any app. It doesn't matter if your app is enterprise level. We are working on ContentStudio app and it's competently on VueJS. But the things as @ Maximilian said, You have to do some extra for validation and other stuff which VueJS doesn't provide built-in.
Vue guys! Top
I understand your complaints about React, particularly referring to things like the renaming of attributes: className vs. class, for example. Our latest project at my current job featured React as a foundational element, and some of the conventions threw me off at first. JSX, in particular, sounded like a silly tack-on, but three things changed my mind.
First, using JSX and React to create components instead of HTML templates, I cut my file count in half and made it easier to expose UI issues. Integrating code and layout works very well. The trick is to avoid excessive nesting and inline styling, so class names and other attributes are of paramount importance. We paired React/JSX and Stylus, implemented on-change compiling of a unified CSS tree, and cut our development-time page reloads by probably half (I don't keep stats on this, so I don't know for certain. But half is a good guess.)
Second, decent browsers support source maps, so with the proper development scaffold, I can trace, debug, and inspect JSX files in the browser dev tools directly rather than looking at the compiled JS product. There are also React-specific dev tools extensions to enhance the picture.
Third, and this is a BIG one for me: the style of React programming (of React itself, actually) is explicit. It doesn't do the "magic" that frameworks generally do, and for a bottom-up thinker, that's a big deal. I've had to deal with black-box frameworks from time to time, and I always find the experience frustrating.
I suppose one has to use whatever tools are available in some cases. I've been fortunate lately, in that everyone is asking me to make those decisions. When it comes to updating job skills, I advocate theory and basis skills over specific frameworks. Then you can say to an interviewer "no, I don't know Circular.js 3.14, but I'm very up to date on ES7, CSS4, and the major quirks that Microsoft has introduced with reference to W3C standards in the latest release of Edge." Portable skills atone for framework and library ignorance, right? At least I like to think it.
The language of the month and the framework of the week. I'm tired of keeping up ;)
I haven't used Vue.js yet, but with React, the best thing about it (other than the virtual DOM) is that you have redux and native as well. What that means is when you learn to write your styles in JavaScript rather than css, when you move to creating apps on iOS, Android, and Windows platforms, you will have an easier transition. I don't know if Angular or Vue have an answer for that...
In 2019 my personal top React, Vue, Svelte, Angular.
Hey... can I ask what is the best way to start if new to react.
@@blessynoby9640 Try the Udemy course Academind has made. That's the one I'm currently learning from.
I learned angular and I'm learning VueJS and I find that Angular works great for medium-large to extra-large projects. But VueJS just works amazing for small client websites or medium sized projects, I also integrated VueJS to some of my full stack applications and it is just a drop in component that doesn't force you to build an spa. It also has angular-or-better SEO components (Putting it against Angular Universal).
React can have templates too: there's an npm package called `react-templates` that does them nicely (much better than Vue imho).
An important thing to point out when considering Angular vs. React and Vue is that you will never have to touch a webpack config file with Angular. The Angular CLI abstracts it all away. Everything is configured for local dev with live-reloading, and for prod builds with tree-shaking and bundle optimizations.
Love this channel 😭 can you make a 2019 version of the comparison between these frameworks please 😁
I might create one, but an updated version already exists, just in case you haven't seen it: academind.com/learn/angular/angular-vs-react-vs-vue-my-thoughts/
Where is the key point that only React and Vue use virtual dom which means that they are A LOT faster? I tried all of them and I like Vue the most because of its simplicity, beauty, separation of concerns and high performance. Angular is my second favorite as it so good for enterprise applications and is very logical which somewhat mitigates the drawback of its steep learning curve. React, well, it is definitely good but I don't really understand why some people say it is number 1.
hahaha...Only a German can say this " If Angular and React has SEX" LOL...
That was the best.
lolololololol
I agree. The best part. Almost choke on my coffee. lol
I was just expecting "had a baby" but then lol'd when I heard that.
came completely out of nowhere. i was not prepared.
Haven't tried Vue.js or React, but I'm using Angular 5 CLI and its AWESOMEEE!!! the main cons is that it takes time to learn it, but once you get it - you can do so much.
One thing that I really did not like about React is the documentation. I thought it was poor, at best. I am going to rewrite my react app with vue and see how I like it.
Thanks for this video.
That's true, the documentation is indeed horrible.
Then submit a PR or file an issue so they can improve it? I actually don't see a lot wrong with the React documentation.
horrible? seriously?
that's the right thing to do, and yeah, I don't see myself something wrong with it.
Yep. I've seen worse. It could be better though. Example: the Life Cycle Methods page give an example of some of them being used but not all and doesn't really explain why you'd use one over the other like ComponentDidMount vs ComponentWillMount. ComponentWillMount is not even on the page.
I've been using react and angular (Junior-intermediate level). my personal thoughts;
React is definitely better and easier to fly off for beginners who's learning the frontend js engine for the first time, but it get's complicated as you go deeper into the state, data management and most importantly, writing GOOD React code (as Max mentioned). Angular, on the other hand, takes some time to get used to using Angular's own methods and services but it gets much easier once you get used to those methods.
I’m having the same thoughts in my mind but I don’t if they’re correct
I think Vue.js is esay to learn, Angular is the hardest, and Vue.js is most popular in China.
Finally Vue.js will become 1st.
Yep, Angular for me! I fell in love with this framework after just a couple of videos. Clean, clear, and everything else. I highly recommend Max also, 5 star teacher.
Thank you so much Razvan, just awesome to hear that!
JSX in my opinion is one of the best things about React.
Perfectly valid point! I simply don't like it but I can totally see why others would enjoy using it
Dave Ford now you can use it in Angular 2 or 4 the Rxjs :)
react is massive cool
You can use jsx in vue, too
You could use JSX in Vue as well
Angular 2+ it is like Java for front end developers ;)
I like React, Vue and Angular, all 3 highly performant, but for enterprise level I would be select Angular 2+ due scalability, modularity and the best integration with TypeScript.
I kinda wanna try Vue but React Hooks keeps me from doing it.
The power of React comes from the fact that it's decoupled from its rendering. That's to say that ReactDom and React are seperate. This gives way to things like ReactNative which is simply just React with a React renderer for different OSs (like apple's OS or windows or android). Also I would argue that the fact that react is so decentralized is a good thing. Because of the vibrant community the range of stuff React can cover is limitless. Also with JSX it doesn't necessarily limit or sacrifice the features of HTML or CSS it simply changes the syntax, and JSX isn't just HTML or CSS it gives more functionality then just HTML and CSS like JS that produces and returns JSX, components, etc etc.
I totally see your point, you list very valid arguments here - and don't get me wrong: I worked with React and I think it's an awesome library. I still work with it, even though I'm not the biggest JSX fan on the world ;)
The argument that JSX in React has too many differences to HTML is pretty weak. You mentioned className in JSX vs class in HTML. That's just *one* difference!
The only other one I'm aware of is that JSX uses "forHtml" instead of "for", again due to naming collisions with JavaScript. To make whatever HTML you have JSX-compatible, all you have to to is swap those two, and that's it. It's nearly identical otherwise.
And, once you do that, you have the full power of an actual programming language (JavaScript) to bear and use to make your HTML flexible. Instead of yet another DSL that's specific to Angular or to Vue, you loop through elements with JS's `.map` or even with `for`-loops. You can bundle up and share HTML elements across your app as regular JavaScript variables. This is incredibly powerful, and coding in React is the closest of the two to writing regular JavaScript, which is the most useful thing a beginner can learn.
As I said: I totally see that advantage and I can absolutely understand that many people (and companies) are loving React.js for that fact. But as I also said: I'm not one of them. And it's more than just class and className. It's also the trouble you quickly face when it comes to styling your components/ elements.
So many workarounds and new solutions are required - hard to argue that that would be better than using native HTML + CSS + scoped styles for example.
Yeah, as someone that has built a lot of things with React, I agree that the video vastly overstates this problem. It's an issue, but in practice a very minor one, and the video makes it out as the main reason not to use JSX. It would have been more honest to to stick with "I just don't like it".
But neither Angular nor Vue use "native HTML". They introduce entire templating languages that you have to learn in order to solve this problem. It's absolutely not clear cut that this is better - you're just swapping one problem for another one.
I would much rather use JavaScript for styling vs css. CSS is weak for a number of reasons where JavaScript is strong but like you said, it's your preference. I had the same bias against react before actually giving it a try and learning the philosophy behind it.
So what's stopping you from doing that with React? Is something forcing you not to use class attributes and CSS? Also what's JSX have to do with CSS?
"I don't like JSX because it's not really HTML, you can't use class, you have to use className". This compared to what? ng-if?
Do a proper comparison: JSX is very much a templating language. Same with whatever Angular calls it's templating language. Difference is one parses text and looks for `ng-if`, the other one _is_ JavaScript objects/arrays and function calls that turn into virtual DOM directly without the need for a parser like Angular needs. This turns out to be a huge advantage ***for some people*** because you're no longer locked into any templating language (and parser), you can use whatever funky JS library to build that DOM - Immutable, lodash, native forEach/map-reduce.
No one is saying one is definitely better than the other. Literally everyone with brains in their heads say it's a matter of taste, experience and needs.
I find it hilarious how at screen with framework logos, for react and angular we see huge brand names, and next to vue - just a pic of some guy with no name ) It's ok though - hard to deny great technology, it's amazing how fast and far Vue has grown in such short time.
That is true indeed - amazing success story thus far
I love how simple React is.
Another advantage of React is, It can also help you to use your existing JS skills in developing the Android/IOS Apps using React Native
So we can change to react native
Kinda of prefer Angular because of the modular nature. Not sure about it's stability.
I think for big projects Angular is the best and Vue for small projects , with Angular projects are very easy to manage and maintain
VueJS is not only for small project. Try Vue + Vuex.
And I think project scale depends on code architecture.
Have been using Angular and React, but when choosing a framework for a new project I chose Vue for the following reasons:
* Seems to have picked up on great features from both React and Angular.
* Seems a cleaner syntax in both development and final rendering
* Is progressive (as is React) so I can use existing code base and inject JS for new / updated views.
* Has a design approach that if there is already a good JS library out there, then plug that in (they don't try and build everything)
* The documentation seems the better of the three.
I am using .NET Core 2 for back end, and Vue for client UI. Both a light weight, meaning I can serve more users with the same cloud resources as previous React / .NET apps I have built.
Lets hope it keeps growing to become one of top JS frameworks.
any problem with vue not having the blessing of a large company? i mean it can fade away at any moment
10:22 HHAHAHAHA
i think what you were looking for this phrase
"if angular and react had a lovechild"
xDDD
We used every day React (+Redux) for Web && React Native (+Redux) for iOS || Android apps.
vuejs for quick. angular for enterprise. react for awesomes
Took me 2 months to learn angularjs 1 last year and I love it. The first framework I learned for js. And then the second one arrived. And now the 4th one coming. I was vexed. I am still trying to learn ecma 6 and react.
none.
Ember.
I've used React, Angular, and Ember, and I'd choose Ember for apps of any size.
Very nice comparison. In my opinion, there is not the best one, between these 3 frameworks/libraries. I'm more close with React, at the first moment I did not like the JSX structure, mix JS, HTML and CSS as you told. But now, with more experience I can say that I'm used to !
I particularly choose to React for my projects (I have a position that I can decide about this in the company), for theses reasons:
1. Community = this is a very important point to me and my team. If we have the community support, and I'm talking about courses and trainings, forums, free material, etc, we really believe that problems that we probably will find, can be solved easily and fastly.
2. The ES6 standard syntax = when you need to hire new members for your team, and you can use the professional legacy, your life will be certainly easier!
3. The future of Mobile apps = the possibility to reallocate some devs between back, front and mobile team, with very simple training and explanation, is very very very interesting.
But I will be honest, I never used Angular ou Vue.js in production environment/projects. But before to decide for React, me and my team did a hard work evaluating these 3 awesome libs/frameworks.
Great comment, thanks so much Bruno!
alot of people just need to learn javascript stop looking for simplicity from frameworks and learn how to code javascript. It's that simple... react has everything you need... good night
If you really go that route, you also shouldn't use React. Vanilla JS only. Yeah, back to the 90's
To be clear: I do understand what you're saying here. It definitely has a true core. But great frameworks don't allow us to NOT learn JS. They also don't necessarily simplify. They allow us to focus on different things.
yea but you know there's people who can do something in angular but don't know how to do it with javascript. I've seen people in interviews saying "I can do it with angular" and that was just a foreach loop. Thats my problem with Angular and now with Vue there's a huge difference why me or you would choose to use a framework to make productivity faster. But people are now using frameworks as a crutch same thing happened with jQuery, Angular, and now Vue JS. By the way love your laravel course learned it from you.
I 100% agree with what you're saying here. We all know it from jQuery and all the stackoverflow threads where the question was "how can I select an element with JS" and the answer was "use $(element)".
This is indeed not how it should be and definitely one disadvantages frameworks bring. People might use them as an excuse. My point only is: That doesn't necessarily make a framework bad.
I agree. Hopefully someone will read this and make sure they don't use it as an excuse lol by the way have you tried the new polymer 2?
Dude your info is so concise and easy to digest. I love the format and the articulation. Keep it up! :) :)
So awesome to read that, thank you very much for your comment! I'll try my best to keep it up :)
In my case, I'm a fan of React. The community is really big and there is plenty of companies that are looking for React.js developers. I'm using Laravel in our company and mixing it with static cms. I do even use Backbone (application is too big to switch to react) and we just render react with backbone router, also I'm on the opposite way, I love the way react.js syntax works. I also think that learning ES6 is a must. I do agree about things like a router, it's pretty annoying to use some NPM react router without knowing how long it will be up to date... For me react is showing how powerful javascript can be. It's true, you need to know how to design your react application. Beginners can get most problems with setting up the project and structuring it. Vue.js is nice(Have not tried it, I will soon) but still it's created by one guy in the first case so he decides everything.
That's a really great addition, thanks for that Artur!
Vue JS started me on this whole javascript framework/library things and it enables me to built several SPA projects, which is great. but, in the end I jumped over to React for reasons I can't really explain. the jsx, the ecosystems, redux etc are one of the reasons I switched to React.
I believe it's quite unfair to compare a framework like Angular to an MVP library like React and say "react doesn't brings all the feature Angular brings". This is by nature. React is the children of the modular ecosystem where you bring pieces you want together. And if you're lazy there's quite a lot of generator like Create-React-App or Yeoman. You can get started within minutes, and if you prefex Redux over MobX well go for it. On the other side Angular is in itself a lot of choice made for the users. But you cannot objectively compare the too in this manner. Would you compare a car and a wheel ?
I love angular 2,4,5
Yeah its by nature. Still its not an all in one package.
why?
a car (angular) and a carriage with 4 wheel (react) is a better anology :P
I have purchased most of your courses on udemy, you are the best teacher anyone could ever have, I understand a lot of things from your courses, the concept, example, the project, and that let me know what I should be equipped to become a full stack web developer, thank you so much!
Thank YOU so much for your comment and for your awesome support Stephen! It really makes me happy to read, that the videos helped you :)
Still new to the whole web scene...soo much to learn, soo much happening...ahh! Time to look at a rxjs video.
One of the reason react is so popular in the uniformity in jsx when working in development teams there are many ways to code and its not always easy to understand each others code. The jsx creates code patterns which speeds up production and development time
I personally love VueJS for the very same reason you do. VueJS will be the future most prefered javascript framework.
I'm all for well-reasoned opinions, but statements like "VueJS will be the future most preferred javascript framework" betray a lack of understanding re: the nuances of the cost and benefit tradeoffs, and how that varies person to person and team to team. Developers often suffer from extreme tunnel-vision in these kinds of matters.
Me too. So I made this www.techtradeoffs.info It just needs a little crowdsource love. Your contributions of product knowledge are welcome.
The fact that vue is not backed up by a huge company is a strong factor why that may not happen.
My opinion.
I'm loving the Vue.
You use the best of pwa and can work with JSX, TypeScript e ES6.
Maybe Angular Team did some breaking changes updates. But I see this as an advantage. I could refactor my code, because I prefer my framework to work perfect. If any breaking changes needed to fix something up, so why not? I'm tired of patching and making walkarounds to fix some easy issue only because the changes will be impacting or the company simply doesn't have enough money to do it right.
Aha, especially when you have a build system like envoyer that will deploy your app and after 2 months you will see your app no longer working on IE because someone at angular screwed up and somehow after 4.x.x version(i do not know it anymore) polyfills aren't included no more, so you will need to add them manually. Nice advantage.
Even in theory you don't sound good. When i run "npm install" i would pretty much insist on app to work the same every time. Would someone like to refactor his whole application that was running perfectly just because someone at google decided to rename some packages, i don't think so.
It's a JavaScript library, you ship the library to your users, so the only reason backward compatibility is an issue is if you upgrade the library. Frankly speaking, for most project I see no reason to upgrade a JavaScript library unless you know the newer version fixes an issue you've been affected by or you're spotted a new feature that you want to use.
Robert Ale You should use "npm ci" instead to install the exact version specified in the lock file instead of getting unexpected upgrades.
Yeah, i'm using npm install --no-save for a while. But my answer was mainly for the guy above, i do not love so much updates. I updated from 4 to 5 with ease, but there still are a lot of risks.
Thx for your time
I showed your comment to my HOT and guess what :)) We're gonna start at least testing npm ci, so thx. Dind't know about it.
Given Angular 1.x -> 2, you don't need a breaking change during rc phase to tell you can expect lots of course corrections.
I dont know I just love React
Which is perfectly fine, it's an awesome library!
Thanks for a comprehensive and reasonable review! Looking forward for your next videos.
Awesome to read that you liked the video Constantine!
Re: you use "normal" HTML for Vue and Angular
this is not normal HTML :p
in react you can loop through html code just like we do in php, i don't know if doing that is that simple in angular
Wooow can you (or anyone) explain what you just did here?
That's pretty much the worst thing about JSX. It looks, feels and behaves like bunch of tags in my HTML. Yuck.
Yeah, but the example was vue though. Idk, I personally love it, might look unusual, but after small learning curve, you'll totally get why Max says it's close to "normal" HTML. Vue bindings are very intuitive, and drop onto html seamlessly.
Hi Max,
First of all, I really like your teaching style and I'm glad I've found courses that I enjoy taking.
Have you tried Aurelia? Do you have any thoughts on that framework?
I've worked with it in beta stage when I didn't have to much experience with SPAs and I delivered the project quite easily.
I found myself learning Angular 5 (using your famous complete course on udemy) now because the no. of jobs and trends indicate to it, but although is similar to Aurelia, I do feel that Angular has some pretty messed up way of handling things like forms and custom mark-up.
I would love to hear you opinion on this.
Thanks
I haven't really looked into Aurelia, no. Can't really share any insights on it therefore, sorry :/