Component Based- You have to know everything in terms of a component if you are using react.js. As in react.js, everything is composed of components. For UI building this also enables you to use external libraries. It reduces the need to write the boilerplate code and this will help you to maintain the large projects. In react.js every functionality is added as the component.
Lightweight virtual DOM- As react.js enhances the performance dramatically, by having a cool feature that it has its own virtual DOM. React does not update on the fly when the data is changed because the virtual DOM is the data and all the components are present in the virtual DOM. React act as the intermediate when the updated DOM is re-rendered. First, it determines the changes in the DOM before updating the DOM. This is very useful for building the user interface. By this user can easily decide which elements need changes and they can see the results.
One Way Data Flow– Components are unable to be changed in react.js, and the data within the components also have this property. The data that flows downstream in one direction is supported by react.js. But if you want your data to be changed in another direction then for this you need other features. Components remain synchronized and operate smoothly as react.js listen to the data that is flowing from the upstream, not the data coming from each other. This feature makes react.js more effective in building the user interface.
For your next project prefer react.js as the features that it supports will help you out in making the user interface.