#ReactJS #DOM #JavaScript #AJAX #MVCframework #UI

React is a JavaScript UI library for dynamic websites. React allows to build complex UI using components as the basis of each building blocks. A component is the smallest possible representative of a group of DOM elements along with its corresponding actions and state.  It allows to create DOM, from JavaScript, that automatically updates to any state changes within the model. It’s an extremely useful framework when dealing with AJAX, dynamically updated DOM, and single page web applications. React.js is JavaScript library developed by Facebook for building user interfaces – it’s oftenly used as view in MVC applications and it doesn’t make assumptions on rest of stack so you can use it with different tech stacks.

 

Pros:

  • Extremely easy to write UI tests cases. This is due to the virtual DOM system implemented entirely in JS
  • Components can be reuse easily throughout your app. They can also be combined, and wireup together to create even more complex UIs
  • One can use reactJS as an alternative, or along with popular JS libraries such as angular, backbone and jQuery
  • React will automatically manage all UI updates when your underlying data changes.
  • Ease of debugging-There’s a reactJS chrome extension that allows you to inspect the DOM to figure out which component is rendering a particular piece of UI.
  • Works nicely with commonJS / AMD patterns

Cons:

  • There’s a learning curve for beginners whom are new to web development.
  • Integrating ReactJS into a traditional MVC framework such as rails would require some configuration
  • It’s kind of verbose. Writing components isn’t as straight forward as pure HTML & JS
  • It’s not a full framework. There’s no router nor model management libraries built into ReactJS — unlike angular or ember.
Share This :

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>