Pages
Server rendering — the HTML is already complete
The server renders every page completely before it sends it: every expression evaluated, every list expanded, every widget drawn. View this page's source (Ctrl+U) and the badge and the list below are already there as plain HTML. Then the browser takes that same markup over, and the button starts working.
Hello World!
- Plan the route
- Pack the bags
- Leave at dawn
<cnc-badge :label="'Hello ' + who + '!'"></cnc-badge>
<ul>
<li x-for="item in items" x-text="item"></li>
</ul>
<button @click="add()">Add an item</button>
A bad expression costs only itself
An expression that throws never turns the page into an error page: its element renders empty and everything around it renders as usual.
<!-- nosuch is not defined: this element renders empty, the page renders as usual -->
<div x-text="nosuch.deep.path"></div>