Similar jQuery widget and AgularJS directives there is React.js, which is very useful library for creating interface components. However, it is not a complete framework like AngularJS or Ember.js.
The way to think about React.js is by thinking about interface components: everything is a component and a component may be composed of one or more components.
See the following figure:
Let's create the components one by one for a better understanding: