If user is undefined, then {user.name} renders nothing and the element has zero size. In that case you do need a fallback like {user?.name ?? "x"} so the element has dimensions to measure.
But it's not "placeholder data" in the traditional sense, it's just ensuring the DOM element exists and has a size. The text is invisible during loading anyway.
For static layouts (headings, labels, images with width/height), it works with no fallbacks at all. The structure itself is the skeleton.
Yes it is a placeholder.
The difference is you're writing a single "x" instead of crafting a full skeleton layout with specific widths and heights.
But yeah, the DOM needs something to measure.
If user is undefined, then {user.name} renders nothing and the element has zero size. In that case you do need a fallback like {user?.name ?? "x"} so the element has dimensions to measure. But it's not "placeholder data" in the traditional sense, it's just ensuring the DOM element exists and has a size. The text is invisible during loading anyway. For static layouts (headings, labels, images with width/height), it works with no fallbacks at all. The structure itself is the skeleton.