My answer for if this is client-side in web-facing websites, is neither.
No scripting off graceful degradation, client-side processing of things that have ZERO blasted business client-side, lack of separation of concerns, etc, etc.
The CLAIMS of ease -- integration, performance, better collaboration -- like in all "frameworks" seems to be a bunch of BALD FACED LIES!!!
Just like the BS lie of the Virtual DOM being 'faster" than changing the actual live DOM. 100% grade A farm fresh FICTION. The only way that is true is if you're going full Gungan by using innerHTML, in which case, well... Meeza sayz yews nevah goes FULL Gungan.
In fact, the extra steps of working with it server-side, the extra execution steps client side for their derpy "comparisons", and how when making one change to one element they seem to want to refresh the entire parent and it's DOM tree (see a lot of the form/table stuff) is about as stupid, wasteful, and ignorant of ACTUALLY using the DOM as you can get!
Because accessing the normal DOM does NOT in any way, shape, or form "re-render the whole page", at least not until scripting execution ends. More so, anything they do with the "virtual DOM" BS is in fact applied to the regular DOM so any difference between node.appendChild or node.insertBefore and React.createElement amounts to exactly two things. Jack and s***!
... and Jack left town.