I think that it depends on the scenario. For different screens or popups, separate components definitely make sense because you don't want a single component to be handling too many responsibilities (or at least not inlined, obviously you can import into a main LoginPage component). However, if you simply have some conditional logic to render a link or button, that can either go inline of the render() method, or I would suggest put it into its own class method (I usually use the convention of prefixing it with render, like renderForgotLink(). I prefer this convention of class methods instead of constants in render() because when I look at the render()method, I want to know exactly what will be shown without having to scroll down too far.