React JS

ReactJS is an open source, JavaScript library maintained by Facebook along with a large developers’ community. This library(Also convertable to a web development framework) is used extensively in developing user interface for web applications. This particular framework was invented with a purpose of building large applications with data that changes again and again over time.

Moreover, React is coming up with something really interesting in near future termed as React Fibre. It is an ongoing reimplementation of Reactjs’s core algorithm. It is the culmination of over two years of research by the React team. It can be a big thing for developers in this year among other surprises.

Advantages :

  1. Virtual DOM in ReactJS makes user experience better and developer’s work faster
  2.  Permission to reuse React components significantly saves time
  3. One-direction data flow in ReactJS provides a stable code
  4. An open-source Facebook library: constantly developing and open to the community
  5. Redux: convenient state container
  6. Wide React and Redux toolset

Disadvantages :

1. High pace of development

This disadvantage are aptly described by developers Michael Jackson and Ryan Florence on Modern Web: “In case you didn’t notice we’re driving a car here with two flat tires, the hood just flew up in front of the windshield, and we have no clue what’s going on anymore!” The environment constantly changes, and developers must regularly relearn the new ways of doing things. Everything is evolving, and some developers are not comfortable with keeping up with such a pace.

2. Poor documentation

The problem with documentation traces back to constant releases of new tools. Different and new libraries like Redux and Reflux are promising to accelerate the work of a library or improve the entire React ecosystem. At the end, developers struggle with integrating these tools with ReactJS. Some members of the community think that React technologies are updating and accelerating so fast that there is no time to write proper instruction. To solve this, developers write their own documentation for specific tools used by them in current projects.

3. ‘HTML in my JavaScript!’ – JSX as a barrier

ReactJS uses JSX. It’s a syntax extension, which allows mixing HTML with JavaScript. JSX has its own benefits (for instance, protecting code from injections), but some members of the development community consider JSX to be a serious disadvantage. Developers and designers complain about JSX’s complexity and consequent steep learning curve.

4. Additional SEO hassle

There have been concerns that Google and other search engines can’t index or poorly index dynamic web pages with client-side rendering. These concerns haven’t been fully proven and there are debunking materials around. Google itself confirmed back in 2014 that their crawlers are capable of reading dynamic content. So, we aren’t gonna say that your ReactJS app won’t be indexed by Google. It’s 2018 after all.

However, you still have to do some testing to ensure that your app makes a buddy out of Google as there were problems reported by some users. SEO specialists recommend running your React apps through Fetch as Google tool to learn better how the crawlers experience them.

While this isn’t a big problem, SEO may add up to your development effort. You can learn more about React apps SEO testing here.