Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I would like to understand how to conduct an independent evaluation of available popular JS front-end frameworks (React/Redux, Vue, Angular and others) for use in a new app we are trying to build ground up.
Many references online end up with conclusions and rates one framework over another. However, I find it difficult to relate with. Say, one report says learning curve for Vue is simpler than JSX for React. I don't find that argument very meaningful since it depends on one's exposure and idea of modularizing a UI component.
So, this SO question is raised to get receive a mixed bag of evaluation suggestions/strategies/schemes to conduct an independent inquiry into these available and popular frameworks.
What themes and approaches can I consider to evaluate popularly available front-end frameworks ?
Please advise.
This answer is given by jeremy-d and copy paste his answer because i
love react and i found react more interesting to work. It's be 1 year
in react and the react community is also very active.
https://stackoverflow.com/users/856942/jeremy-d
Advantages of using React:
easy to know how a component is rendered, you just look at the render function.
JSX makes it easy to read the code of your components. It is also really easy to see the layout, or how components are plugged/combined with each other.
you can render React on the server-side.
it is easy to test, and you can also integrate some tools like jest.
it ensures readability and makes maintainability easier.
you can use React with any framework (Backbone.js, Angular.js) as it is only a view layer.
What is not so good about React?
it is only a view layer, you have still to plug your code for Ajax requests, events and so on. Some people get surprised by that.
the library itself is pretty large.
the learning curve can be steep.
If react-native is really how it was described, react is going to become even bigger.
Performance wise, it is really good as it relies on a virtual-dom to know what is really changing in your UI and will re-render only what has really changed. It does have trouble with very large, slightly changing, lists of children (2000 <li> test), but can be optimized simply.
If you are not sure, just think about the big projects using React:
instagram, hipchat, facebook chat and so on.
Some resources:
React for the stupid people
Rebuilding Hipchat with React
Why React?
And probably one of my favorite blog post Why React is awesome?
The community behind a framework is one of the most important factors for me. I want to be able to find answers on Stack Overflow for my questions, and I want to be able to find libraries and packages I can use that are actively maintained.
I like React most of all because it is easy to integrate into some other backend framework e.g. Rails.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 2 years ago.
Improve this question
I read the following recently.
React is MAINLY THE VIEW LAYER.
React is mentioned in the same breath as other Javascript frameworks,
but "React vs Angular" doesn't make sense because they aren't directly
comparable. Angular is a complete framework (including a view layer),
React is not. This is why React is confusing to understand, it's
emerging in an ecosystem of complete frameworks, but it's mostly the
view.
...
You can't build a fully functional dynamic application with React
alone. We'll learn more about why below.
In particular, I was really surprised by the last statement, "You can't build a fully functional dynamic application with React alone". Following on from that, the article went on to say this.
Don't forget that React is mostly the view.
You DON'T GET any of the following:
An event system (other than vanilla DOM events)
Any AJAX capabilities whatsoever
Any form of a data layer
Promises
Any application framework
React on its own not enough for most real world use cases.
What!? So, in other words, you would use something like Angular or Vue along with React!? Or is this just outdated content?
So, in other words, you would use something like Angular or Vue along with React!?
No. Angular for instance comes with things like Ajax helper functions built-in, but it also has its own View layer. If you were using Angular then you wouldn't use React because it has its own equivalent.
React does one thing and it does it well. If you need to do something React doesn't do (and you will) then you need to either use the raw browser features (if applicable), write your own code to do it or use another library.
Vanilla DOM events are just fine for many cases. You can throw the RxJS library in if you need more complex event handling.
Keeping your state in some local JS objects is fine for many cases. You can throw Redux or similar in if you want more powerful state management.
fetch is just fine for many cases. Etc.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 3 years ago.
Improve this question
If I have had experience with JS, yet still need to learn a lot more, es6 and up, would it be ok to start on React or Vue? I recently graduated and it seems like a lot of companies like the sound of you knowing react, Angular or Vue as well.
You should first learn the basics of vanilla JavaScript and modern syntax and features found in ES6. Like Jared said above, frameworks come and go. If your fundamentals in JavaScript are strong, you would easily be able to pick up on any framework/library. Also, as you learn/work on a framework, keep practicing coding in vanilla JS side by side. That will strengthen your JS skills.
Some of the things you should know before you start with a framework are:
Object-oriented JavaScript - classes, constructors, methods, inheritance.
ES6 syntax/features - arrow functions, let/const, importing/exporting modules
higher-order array methods
Also, you should think of where you want to work - at a large MNC or a startup or if you want to freelance.
Most large companies, that make enterprise level apps, use Angular because it provides a strict framework to follow. React and Vue are much more relaxed in terms of how you implement things.
For Angular, you might need to have some knowledge of TypeScript, which, again, won't be difficult to learn if your JS basics are clear.
I would suggest you go through the basics of JS and then pick one of Angular, React or Vue and then give some time regularly to vanilla JS.
Word of caution: Do not get into the argument of which framework is better than the others. You will find many such videos/articles that try to prove one is better or worse than the rest, but, trust me, all that matters is your skills in vanilla JS.
Best of luck. :)
React is javascript so learning React means learning javascript, But You cannot learn React without JavaScript or without knowing JavaScript in the first place. In comparison to other frontend solutions, React makes heavily use of JavaScript, So get some basic and advance javascript experience.
The simple answer will be yes you can. I did the same. I had very little knowledge of javascript before I started with React. You will learn javascript while you learn to React because React is essentially just javascript.
You will be using all the things while you will be learning to React like class, let, spread operator and lot more. I will suggest to watch a few small tutorials and can jump right into developing something ad you will learn along the way.
That being said I will suggest you build on your javascript basics while you learn React because there is a new framework every few months. So in summary just start learning without thinking.
You don't need to be an expert in JS to start with React, for example, but you need to know at least the basics of this language, and other things like algorithms and data structures. I recommend also to study how React or other JS library works, in order to don't be stuck with the basics of this libraries.
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I am trying to develop a 3d-editor with three.js. I know javascript and three.js but I am not familiar with web-dev in depth and never tried UI frameworks. While mrdoob's editor uses plain javascript for UI elements, I am not sure which method will be more beneficial for me? To use a framework like react.js or vue.js; or go with plain javascript for UI elements.
Project owner planning to have dynamic and complex UI elements like a tutorial wizard, a console or fields that will be dynamically change with data coming from server.
So what are the benefits and drawbacks of using pure js or frameworks, considering it will be a three.js project.
And should I use library's like react-three or vue-threejs, or start with integrating three.js scene to framework for the sake of stability?
First you need to understand what is those framework trying to do for you
React, Vue, Angular is abstracting DOM manipulation when state changes. And they are mature enough to adopt in production
react-three, vue-threejs is abstracting Canvas/SVG/WebGL manipulation away when state changes.
In theory it is possible to build every product without any framework. But using them will save lots of time and give huge benifit for maintainability. But you need to put effort to learn it first.
So my answer is that for
Small/POC project - If you are not familiar with those frameworks, go ahead with plain javascript, jQuery to manipulate DOM and canvas directly. But highly recommended to learn and use these frameworks in the future. It will increase your dev speed insanely
Large/Long-term project - Do use React/Vue/Angular. Leverage your risk in adopting react-three/vue-threejs
UI frameworks are great, they have done a lot of the hard work for you. Personally I really like VueJS, it's very lightweight but extremely powerful when it comes to creating SPAs. And from what you have said someone has already created a vue-three plugin
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I have worked in Angular js and find it to be developer friendly and ease of use is awesome. I found out it performs extremely good with SPA(Single page application) architecture and if controller scope variables are not misused.
I however don't know why most of eCommerce companies complaining angular being not performing equivalent to reactjs. I think in lot of use cases might not event found the visible performance difference, with development effort being less.
Angular followed MVC ideology, while React is developed with MVVM design. I don't consider myself a very good programmer in either of them, anyways I have started learning reactjs, so I want to know should I go for react js for my own project or not, one clear advantage is isomorphic rendering.
I tried to make this a comment but ran out of space :)
As with anything, it is as fast as the developer can make it :) A good AngularJS developer can make an app that is faster than a bad developer creating a React app.
Having said that, React will be faster out of the box with a LARGE amount of elements on screen. AngularJS will require some knowledge to make it fast with lots of on screen elements. But I fully expect for most people they won't ever see any performance drop with most apps. E.g. if you want to make a fairly complex application with a couple of hundred dynamic objects on screen you shouldn't see many performance problems.
If you do choose AngularJS [my preferred framework] I would suggest following the latest component guidelines as it will help you build a performant application.
As an indicator I am working on an asset tracking AngularJS app. We can track around 2000 elements on screen a map at once with lots of additional information and this works pretty fast. It took a lot of work to get there though. It also works great on mobile too :)
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 5 years ago.
Improve this question
I've worked on multiple angular 1 projects and I totally loved it . We have few projects in the pipeline for which I need to provide recommendations for JavaScript frontend libraries/ frameworks . Since angular 1 is fading and angular 2 is a total redesign with considerable amount of bad reviews is it a good idea to move to angular 2 ( I've read in some articles recently that angular 4 is in horizon) . I've used a little bit of react as well but for some reason didn't really liked JSX. Saying that React is also one of our options . Lately I've been listening a lot about vue.js ( not really sure if we are going to use it)
If you can provide some insights in selecting one framework over the other that would be really helpful
Thanks
Angular, React and vue.js are all very mature libraries/frameworks. I would recommend you and anybody with the same question to try all of them. Doing a simple TODO list app might be enough for anybody to see if the like a library/framework or not. If you didn't really like JSX, give a try to vue.js and choose the one you feel more confident with.
Also, posting this kind of question here might not be the best choice. I would suggest you to ask them on a website like Quora
Recommendations? - Angular!
Why?
I am have been using angular for about 3 years and still counting. I have found very well defined answers to my queries. I don't like their documentation. Some are very brief and some very detailed that finding [small] one, is hard. There are 100s of advantages i can give for Angular-why? - because i have used. There are many libraries that are evolving for the use of angular. And yes, angular is constantly evolving, and am excited about Angular4.
why not React? - I have used it too, but i did not like it. And the preferences and solutions to the problems are hard to find compared with Angular.
As you already have learnt and practiced angular, angular2 would not be a problem nor i think angular4 should either. But if you take on React, you will probably divert your way out Angular.
Disclaimer: This is completely personal approach and review.