React changes the way your brain thinks about web app development
February 28, 2018

React changes the way your brain thinks about web app development

Joshua Weaver | TrustRadius Reviewer
Score 9 out of 10
Vetted Review
Verified User

Overall Satisfaction with React

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.
  • Development speed has probably sped up overall
  • Organization of code has improved
  • More flexible future development and maintenance options
  • Vue and Blaze
When choosing a front-end framework, you have a ton of choices. There are numerous articles that will try to convince you this way or that about which one is better. I have used Blaze as a UI layer for Meteor Application development quite extensively and have found it to greatly aid development with its simplicity and speed of getting ideas off the ground. It does suffer in certain context from extra code necessary to get things working because of its older handlebars-like patterns. Logic takes more code. With React, you can accomplish a lot of basic tasks more succinctly because it's just javascript all around and you can incorporate broader logic right into the templating.
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

Using React

React is just a bit of a different animal. I was avoiding it for the longest time. I thought for sure I would land on Vue or something else with a more approachable and familiar appearance. But after taking an online course in React, I started realize what people were raving about (and complaining about) and decided to implement it at our office for one of our products.
ProsCons
Like to use
Well integrated
Consistent
Convenient
Requires technical support
Lots to learn
  • 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 - If you call React Native a mobile interface ;) - But seriously though, React Native is amazing. It gets you the ability to build cross-platform, native Mobile apps that utilize over 90% of the same codebase.