&gt; There is no logic in the &quot;template&quot;. No looping, no branching. Only inert ids. There is logic in determining which component replaces each id, but that logic lies in the code, not the template.<p>Again, changing view to mean &quot;template&quot; is a strawman.<p>&gt; Wicket clearly separates its state into models
&gt; You do have to declare which changes update which UI (for performance reasons),<p>Separating state isn&#x27;t the same as no state.  Also imperatively updating the UI on state changes is stateful.  Which increases complexity, which for most people makes code hard to reason about.<p>&gt; but you can make that &quot;always re-render the whole page&quot; if that suits your use case<p>Anything can be made to do anything, so this point is moot.  If this model was trivially applied, would it lead to flickering, lower performance, losing scroll position, losing selection, or losing input focus?