Option 0: (current state)
<input type="text" bind="@person.Name" />
<input type="text" bind-value="@person.Name" />
<input type="text" bind-value-oninput="@person.Name" />
<input type="text" bind-value-oninput="@person.Name" format-value="..." />
Option 1:
<input type="text" @bind="@person.Name" />
<input type="text" @bind-value="@person.Name" />
<input type="text" @bind-value="(person.Name, "oninput")" />
<input type="text" @bind-value="(person.Name, "oninput", format: "...")" />
Option 2:
<input type="text" @bind="@person.Name" />
<input type="text" @bind-value="@person.Name" />
<input type="text" @bind-value-oninput="@person.Name" />
<input type="text" @bind-value-oninput(format: "...")="@person.Name" />
Option 3:
<input type="text" @bind="@person.Name" />
<input type="text" @bind-value="@person.Name" />
<input type="text" @bind-value-oninput="@person.Name" />
<input type="text" @bind-value-oninput(format: "...")="@person.Name" />
## Events
**Option 0: (current state)**
```cshtml
<button onclick="@Clicked" />
<button onclick="@Clicked" onclick-prevent-default />
<button onclick="@((e) => {.....})" onclick-prevent-default />
<input type="text" onkeydown="@KeyPressed" onclick-prevent-default onclick-repeat-delay="500" />
Option 1:
<button @onclick="@Clicked" />
<button @onclick="(Clicked, preventDefault: true)"/>
<button @onclick="((e) => {.....}, preventDefault: true)" />
<input type="text" @onkeydown="(@KeyPressed, preventDefault: true, repeatDelay: 500)" />
Option 2:
<button @onclick="@Clicked" />
<button @onclick(preventDefault)="@Clicked" />
<button @onclick(preventDefault)="@((e) => {.....})" />
<input type="text" @onkeydown(preventDefault, repeatDelay: 500)="@KeyPressed" />
Option 0: (current state)
<div ref="@foo">...</div>
<div ref-assign="@foo" />
Option 1:
<div @ref="foo">...</div>
<div @ref="(foo, assign: true)" />
Option 2:
<div @ref="foo">...</div>
<div @ref(assign)="@foo" />