The following diagram shows the sequence of events that happens from component instantiation to component rendering:
In order to further understand, let's create a Lightning application with the following code, and observe some logs in the console. We'll call the sample application LifeCycleExampleApp.app:
<aura:application extends="force:slds"> <aura:handler name="init" value="{!this}" action="{!c.onInit}"/> <aura:handler name="render" value="{!this}" ...