React component can be assumed as classes and when a component is called(or rendered); an instance of the component class will be created. All the methods defined in the component definition will be available to use through the instance(if you have access to instance, with the help of refs it can be achieved easily). If you want to have some static property or methods, then with the help of “statics” property it can be achieved. For example if A is a component then methods or properties defined under “statics” will be available without creating instance of component or without rendering actual component. This can be used, when you want to write some utility method or want to maintain static state of a component.
The strong feature of React I feel is re-rendering the components, here while re-rendering components you can’t see any flickering in the components because it re-render component wisely. Where the DOM, which are not changed doesn’t replaced and only the node where the values are changed will get replaced. Here to track DOM and for efficient rendering React uses virtual-dom and here you can find the explanation about how React diff algorithm works.
Common issue I have seen when you are using React.js for first time, because for me I ran in confusion that from where to start using components in my web app and how to structure components so that it can be reused and what are the things can be considered as best practices while loading an app. To summarize solution to this issue, I consider where in some web application only we want to write few components in React but not all. Then converting a non-component based app to React app can be done by writing small-small component by features and start using those components. In this case, component can be rendered at the place-holders where the HTML for those component was already there. For example if a large application is live and in production it is costly and time consuming task to write the whole web app into a React.js app.
But in next scenario where you want to write complete web application in React.js, you will need to decide that how the components will be organized and what will be the root component which will take care of rendering other components. And initially the root component will be rendered when the document is ready.