> I totally see what you mean but this particular lifecycle is for a very rare use case.
It's not that rare. Consider a route change where some state needs to be preserved or, like the article mentions, a scroll position change (or reset!).
> You're right—but this solution doesn't solve async data fetching. It only works when the data is synchronously available, and per the post, in that case you can already use the constructor.[3]
I just want to point out how fundamentally flawed this is. The constructor is meant to initialize internal and initial state of objects. Making a data/network request in the constructor is beyond bizarre. In fact, the general consensus was that doing that sort of thing in the constructor is kind of an antipattern[1].
> The mentioned “suspense” API is both much less verbose and actually was designed with server rendering in mind. It would let us fetch data on the server and on the client and suspend rendering until the data is ready (and show a placeholder if it takes too long).
I'll have to check out suspense, but I feel that it's yet another API that reinvents the wheel. We'll see.
[1] https://discuss.reactjs.org/t/constructor-vs-componentwillmo...