You can think of them as dependency injection or as inversion of control. The point is that you pass a component into a component and it lets your consumer define how something gets rendered. π€―
Code on GitHub π
https://github.com/Swizec/learn-while-you-poop-react