TrustRadius
https://dudodiprj2sv7.cloudfront.net/product-logos/6g/nk/H0EGMN2HXUMF.PNGReact: fast efficient generation of HTML codeReact is being adopted as a standard in our organization. When I started using it two years ago, I was one of the early adopters. A few projects had adapted it for part of their system and a number of other projects had announced their intention to move in that direction. Shortly thereafter, we built a new system of design patterns to make our UX more consistent, and this project began building in React. At this point, many projects have begun to convert to it, the design pattern system is fully implemented with it, and fundamental architecture plans for the future are based on it. The main business problem it addresses is to provide an efficient UX implementation and form the basis for common code development across front end applicatiions. It also is part of our plan to move from Python web apps to NodeJS web apps.,React is designed around the notion of generated html as opposed to templated html. This provides more flexibility in building elements on a page, and allows developers to create html that is programmatically configured based on runtime considerations. React uses JSX, which is HTML templating integrated into javascript code. This simplifies the generation of complex structures, especially those that vary based on runtime and interactive data. React is more efficient because it generates a virtual DOM rather than directly building in in the actual DOM. By building 'offline' in this manner, the DOM generation is faster. After building, it can be installed in one operation. React only builds those portions of the display that have changed, making display updates more efficient.,Debugging React is challenging. Bugs in react code generate stack traces internal to React and it is often totally unclear how it relates to the code you actually wrote. Relating your React elements to corresponding DOM elements is difficult. The intentional separation of virtual and actual DOM also makes it difficult to map the elements to the structures in the DOM. This is partially ameliorated by the use of the React dev tool, which provides a DOM-like view of the React elements, but the tool still does not provide a direct correspondence with the DOM that is often necessary to figure out why something isn't right. Because JSX is React-specific and not a language feature, a special compilation process is necessary to convert JSX code to normal JS. Coming from a C++ background, compiling things doesn't bother me, but many JS developers are used to a less structured development.,10,Since we're still in the conversion cycle, all the data is not in. But React has had a positive impact on Developer productivity and the ability to produce efficient, highly flexible UX. This in turn, enhances our customer experience, which is generally the most important component of our ROI. Conversion has been difficult since it requires a change of mindset. Most developers have adapted quite well, but the process has been lengthy, and 2 years in, we are still not fully converted. This essentially is a temporary negative impact on ROI.,,Docker, Oracle VM VirtualBox, EclipseReact = WinningWe use it for all of our application development UI needs. Building a UI (and ultimately UX) in JavaScript is great... JSX makes tons of sense and has allowed me to solo-develop Riders Share (in tandem with a handful of other projects/libraries) very quickly.,State drive UI & UX Pairs well with React Semantic UI Pairs well with MeteorJS Helps you to structure/organize code in a sensible way,Learning curve Frequent changes (but they're always good about backwards compatibility),10,We're growing our business rapidly using a platform built on React... it directly corresponds to our success or failure. So far we've seen a lot of success so I would say React (being a free product) has had very meaningful and positive impacts.A library that's hard to miss for any UI developerReact is one of the more popular frameworks being used across our organization for developing web interfaces. React is a library that allows for efficient compartmentalization of the code that allows managing code bases on large user interfaces a breeze. It also does several optimizations on the expensive re-rendering process to make the the user interfaces with large data responsive.,Solid backing by large organization (Facebook) thats committed to keeping the development on the project. In my mind, this is the number one priority for any library because without this: time is wasted on getting up-to speed on a library that you will never use, have a codebase with a library thats hard to maintain because few years down the lane, hiring devs to maintain an unsupported library is very difficult. As with any libraries, open source community's support is critical for success of any framework because this allows for more pre-built components that could be used right out-of-box => makes Development using React a breeze. React's Stateful and Stateless components make organizing your code a breeze. These components would also allow for writing clean Unit Tests on the logic. React's component lifecycle. It offers a variety of lifecycle methods, that allows for handling different scenarios of loading and manipulating data in the UI. I found React's documentation very well maintained with plenty of examples explaining each feature. Responsiveness is a very important criteria in selecting a UI and React is very responsive. It does some neat optimizations on re-rendering using virtual DOM and would only re-render parts of the DOM that changed. These optimizations makes React Applications feel really fast. React Native would allow for building applications that span across web and mobile interfaces (iOS and Android). This makes learning React even more enticing, because using a single library, you could build applications that span across Web, iOS and Android. create-react-app is an effort by Facebook (creators of React) that makes getting started with React really easy. It does all the heavy lifting of configurations for you and allow you to focus on just development. Small footprint, minified React + React DOM is under 150Kb, that makes loading UI's with react really fast. React + Enzyme (backed by Airbnb) + Sinon + Mocha + Chai makes unit testing the UI components fun and improves the overall maintainability of the project.,React could get very frustrating unless you start thinking in React. React enforces a top down hierarchy of data flow and offers no way for the data to communicate backwards. This is a big shift in mindset coming from Angular 1.x. This constraint is really a big factor that determines how to organize your code and how you might want to write your own Components. Because of the self imposed top down hierarchy, you end up having a heavy parents with dumb children. Because parents would need to the bulk of the work, they usually manage the state, while passing callbacks to the child components. If not properly designed, this could lead to the callback hell, where you could have callbacks passing through like multiple children. As with any library, you will have to iterate through multiple designs to come up with a ways to avoid "heavy parent components" in React. One obvious solution is using some open source tools like Redux, but we opted for a variation of it to suit our needs.,10,Well tested smaller components means faster iterations with improved code quality Because of open source support, React often has components pre-built in open source projects. This allows for faster development process because you don't have to start from scratch to build a Select Component on your UI, you could simply use one of the pre-existing libraries. Wide popularity => cheap maintaince => longer life span for the project.,Angular and Vue,CloudFoundry, Apache Kafka, IntelliJ IDEA, IntelliJ WebStormReact changes the way your brain thinks about web app developmentReact has been used as a web front-end layer for a few different projects. We have a couple of web applications that we have chosen to use React for. It addressed the need for something that was forward-thinking and progressive in its approach to development. It allows us to structure the client-side logic and presentation code in a more maintainable way.,React makes managing state both easy and hard (depending on the context of the situation). So I am using it as both a pro and a con. React makes organizing your code quite easy. React is fast. It can be used on the front end and also rendered server-side. The Ecosystem is enormous for being so young. Wide-spread adoption has helped this and gives you plenty of areas to find help. React Native is an amazing tool that gets you into Mobile Development using the skills you learn in React Web development,React's state management can get hairy if you have a deeply nested component and need to pass things up or down the tree very far. This is where libraries like Redux come in, however. The progressive nature of its development and change cycles can leave information outdated online faster than other frameworks. This can make finding help or documentation on 3rd party sites frustrating. The learning curve on "thinking in React" can be slightly higher than other more familiar patterns of web development. Building an app in it can be cumbersome to set up with webpack, but things like Create React App can get you going in a jiffy.,9,Development speed has probably sped up overall Organization of code has improved More flexible future development and maintenance options,Vue and Blaze,MongoDB, Adobe Photoshop, Adobe Illustrator CC,Performing basic to moderately complex logic in your templating can be achieved and still visually readable from a code standpoint Organizing code from a data flow standpoint is much easier than with other framework,Choosing a way to style components - there are so many different opinions on the matter Form handling,Yes,7
Unspecified
React
22 Ratings
Score 9.0 out of 101
<a href='https://www.trustradius.com/static/about-trustradius-scoring' target='_blank' rel='nofollow'>trScore algorithm: Learn more.</a>TRScore

React Reviews

React
22 Ratings
<a href='https://www.trustradius.com/static/about-trustradius-scoring' target='_blank' rel='nofollow'>trScore algorithm: Learn more.</a>
Score 9.0 out of 101
Show Filters 
Hide Filters 
Filter 22 vetted React reviews and ratings
Clear all filters
Overall Rating
Reviewer's Company Size
Last Updated
By Topic
Industry
Department
Experience
Job Type
Role
Reviews (1-4 of 4)
  Vendors can't alter or remove reviews. Here's why.
Larry Reed profile photo
August 03, 2018

Review: "React: fast efficient generation of HTML code"

Score 10 out of 10
Vetted Review
Verified User
Review Source
React is being adopted as a standard in our organization. When I started using it two years ago, I was one of the early adopters. A few projects had adapted it for part of their system and a number of other projects had announced their intention to move in that direction. Shortly thereafter, we built a new system of design patterns to make our UX more consistent, and this project began building in React. At this point, many projects have begun to convert to it, the design pattern system is fully implemented with it, and fundamental architecture plans for the future are based on it.

The main business problem it addresses is to provide an efficient UX implementation and form the basis for common code development across front end applicatiions. It also is part of our plan to move from Python web apps to NodeJS web apps.
  • React is designed around the notion of generated html as opposed to templated html. This provides more flexibility in building elements on a page, and allows developers to create html that is programmatically configured based on runtime considerations.
  • React uses JSX, which is HTML templating integrated into javascript code. This simplifies the generation of complex structures, especially those that vary based on runtime and interactive data.
  • React is more efficient because it generates a virtual DOM rather than directly building in in the actual DOM. By building 'offline' in this manner, the DOM generation is faster. After building, it can be installed in one operation.
  • React only builds those portions of the display that have changed, making display updates more efficient.
  • Debugging React is challenging. Bugs in react code generate stack traces internal to React and it is often totally unclear how it relates to the code you actually wrote.
  • Relating your React elements to corresponding DOM elements is difficult. The intentional separation of virtual and actual DOM also makes it difficult to map the elements to the structures in the DOM. This is partially ameliorated by the use of the React dev tool, which provides a DOM-like view of the React elements, but the tool still does not provide a direct correspondence with the DOM that is often necessary to figure out why something isn't right.
  • Because JSX is React-specific and not a language feature, a special compilation process is necessary to convert JSX code to normal JS. Coming from a C++ background, compiling things doesn't bother me, but many JS developers are used to a less structured development.
React is really great when you want to build something that is highly fluid, with a lot of data driven display elements. It allows you to describe the DOM in programmatic terms, which makes your display output faster and more efficient. But if you have a highly static page, then it adds a lot of overhead just to get something basic up.
Read Larry Reed's full review
Brendon Lamb profile photo
November 25, 2018

User Review: "React = Winning"

Score 10 out of 10
Vetted Review
Verified User
Review Source
We use it for all of our application development UI needs. Building a UI (and ultimately UX) in JavaScript is great... JSX makes tons of sense and has allowed me to solo-develop Riders Share (in tandem with a handful of other projects/libraries) very quickly.
  • State drive UI & UX
  • Pairs well with React Semantic UI
  • Pairs well with MeteorJS
  • Helps you to structure/organize code in a sensible way
  • Learning curve
  • Frequent changes (but they're always good about backwards compatibility)
React is great for web application development, especially for SPAs (Single Page Apps) - it maybe less suited for traditional website development.
Read Brendon Lamb's full review
Anudeep Palanki profile photo
March 03, 2018

React Review: "A library that's hard to miss for any UI developer"

Score 10 out of 10
Vetted Review
Verified User
Review Source
React is one of the more popular frameworks being used across our organization for developing web interfaces. React is a library that allows for efficient compartmentalization of the code that allows managing code bases on large user interfaces a breeze. It also does several optimizations on the expensive re-rendering process to make the the user interfaces with large data responsive.
  • Solid backing by large organization (Facebook) thats committed to keeping the development on the project. In my mind, this is the number one priority for any library because without this: time is wasted on getting up-to speed on a library that you will never use, have a codebase with a library thats hard to maintain because few years down the lane, hiring devs to maintain an unsupported library is very difficult.
  • As with any libraries, open source community's support is critical for success of any framework because this allows for more pre-built components that could be used right out-of-box => makes Development using React a breeze.
  • React's Stateful and Stateless components make organizing your code a breeze. These components would also allow for writing clean Unit Tests on the logic.
  • React's component lifecycle. It offers a variety of lifecycle methods, that allows for handling different scenarios of loading and manipulating data in the UI.
  • I found React's documentation very well maintained with plenty of examples explaining each feature.
  • Responsiveness is a very important criteria in selecting a UI and React is very responsive. It does some neat optimizations on re-rendering using virtual DOM and would only re-render parts of the DOM that changed. These optimizations makes React Applications feel really fast.
  • React Native would allow for building applications that span across web and mobile interfaces (iOS and Android). This makes learning React even more enticing, because using a single library, you could build applications that span across Web, iOS and Android.
  • create-react-app is an effort by Facebook (creators of React) that makes getting started with React really easy. It does all the heavy lifting of configurations for you and allow you to focus on just development.
  • Small footprint, minified React + React DOM is under 150Kb, that makes loading UI's with react really fast.
  • React + Enzyme (backed by Airbnb) + Sinon + Mocha + Chai makes unit testing the UI components fun and improves the overall maintainability of the project.
  • React could get very frustrating unless you start thinking in React. React enforces a top down hierarchy of data flow and offers no way for the data to communicate backwards. This is a big shift in mindset coming from Angular 1.x. This constraint is really a big factor that determines how to organize your code and how you might want to write your own Components.
  • Because of the self imposed top down hierarchy, you end up having a heavy parents with dumb children. Because parents would need to the bulk of the work, they usually manage the state, while passing callbacks to the child components. If not properly designed, this could lead to the callback hell, where you could have callbacks passing through like multiple children.
  • As with any library, you will have to iterate through multiple designs to come up with a ways to avoid "heavy parent components" in React. One obvious solution is using some open source tools like Redux, but we opted for a variation of it to suit our needs.
Well suited for:
- Building performance intensive web interfaces.
- Making responsive user interfaces that deal with large data.
- Asynchronously retrieving data and partial DOM updates.
- Clean organized code.
- Building interfaces in multiple platforms (thanks to React Native)

Its less suited if:
- You are unwilling to think in React.
Read Anudeep Palanki's full review
Joshua Weaver profile photo
February 28, 2018

Review: "React changes the way your brain thinks about web app development"

Score 9 out of 10
Vetted Review
Verified User
Review Source
React has been used as a web front-end layer for a few different projects. We have a couple of web applications that we have chosen to use React for. It addressed the need for something that was forward-thinking and progressive in its approach to development. It allows us to structure the client-side logic and presentation code in a more maintainable way.
  • React makes managing state both easy and hard (depending on the context of the situation). So I am using it as both a pro and a con.
  • React makes organizing your code quite easy.
  • React is fast.
  • It can be used on the front end and also rendered server-side.
  • The Ecosystem is enormous for being so young. Wide-spread adoption has helped this and gives you plenty of areas to find help.
  • React Native is an amazing tool that gets you into Mobile Development using the skills you learn in React Web development
  • React's state management can get hairy if you have a deeply nested component and need to pass things up or down the tree very far. This is where libraries like Redux come in, however.
  • The progressive nature of its development and change cycles can leave information outdated online faster than other frameworks. This can make finding help or documentation on 3rd party sites frustrating.
  • The learning curve on "thinking in React" can be slightly higher than other more familiar patterns of web development.
  • Building an app in it can be cumbersome to set up with webpack, but things like Create React App can get you going in a jiffy.
If I were just adding small components that needed to do simple things in a web page, I would probably not choose React. It kinda feels like a big hammer for a little nail like that. There is a bit more overhead in library size to accomplish smaller tasks.

With that being said, I feel like React is a great choice for medium to larger size web applications that have lots of moving parts. Using it will help you structure your app more efficiently overall.

There are some areas that are still frustrating and include lots of boilerplate with React (which have been alleviated with certain libraries).
  • Just getting started can be a battle - Use Create React App to get off the ground faster
  • State management can get difficult - Use Redux if necessary
  • Form handling can be laborious - Use Formik or something similar
Read Joshua Weaver's full review

About React

React Technical Details

Operating Systems: Unspecified
Mobile Application:No