react4j.core.ComponentPhase Maven / Gradle / Ivy
package react4j.core;
/**
* This indicates the major lifecycle phase that the component is going through.
* These match those in the React Component
* API with the addition of {@link #INITIALIZING} that the Java API needs. This constant is only used
* during validation of state and should be optimized away in production builds.
*/
enum ComponentPhase
{
/**
* The beginning of the components lifecycle.
* The component goes through the steps:
*
* - Constructed.
* - Bound to a native react component via {@link Component#bindComponent(NativeComponent)}.
* - {@link Component#componentInitialize()} is invoked.
*
*/
INITIALIZING,
/**
* The component is rendered initially and mounted on the dom.
* The component goes through the steps:
*
* - {@link Component#componentWillMount()} is invoked.
* - {@link Component#render()} is invoked.
* - {@link Component#componentDidMount()} is invoked.
*
*/
MOUNTING,
/**
* The component is potentially re-rendered due to updates.
* The component goes through the steps:
*
* - {@link Component#componentWillReceiveProps(BaseProps)} if props were provided. i.e. the parent component was re-rendered.
* - {@link Component#shouldComponentUpdate(BaseProps, BaseState)} and if the component returns false the update will be aborted.
* - {@link Component#componentWillUpdate(BaseProps, BaseState)}.
* - {@link Component#render()}.
* - {@link Component#componentDidUpdate(BaseProps, BaseState)}.
*
*/
UPDATING,
/**
* The component is being removed from the dom.
* There is one step:
*
* - {@link Component#componentWillUnmount()}.
*
*/
UNMOUNTING
}