Lazy load arbitrary components.

Some components are expensive to render and we want to render them only when they are visible to the user. This technique is also called *lazy loading* or *virtualization*.

Most virtualization libraries assume that the components to be lazy loaded are entries of a list and it is assumed that they are are all siblings and children of one same parent component. It is not the case in our application and the expensive components to be lazy loaded are scattered around the element tree.

Are there libraries that allow to lazy load components that are at arbitrary positions? For example passing a prop `isVisible` to the expensive components would be a solution so they can render a cheap-to-render placeholder when `isVisible===false`.