When the user submits the form, the server receives a request with the updated data property values from the inputs. An email is sent, and the template is re-rendered with the updated values.
When using wire:model, Livewire will only send a network request when an action is performed, like with wire:click or wire:submit. However, you may want to update the server more frequently for things like real-time validation. In those instances, use wire:model.live.
Live Updating
You can use wire:model.live to send property updates to the server as a user types.
<input type="text" wire:model.live="name">
By default, Livewire adds a 150-millisecond debounce to server updates. If the user is continually typing, Livewire will wait until the user stops typing for 150 milliseconds before sending a request.
You can customize the debounce using wire:model.live.debounce.Xms.
If you have a dropdown that is dependent on the value of another dropdown and needs to update, you can use wire:key to ensure it updates.
<!--- Select your state --->
<select wire:model.live="state">
<option disabled value="">Select a state</option>
<cfloop array="#getStates()#" index="state">
<option value="#state.id#">#state.label#</option>
</cfloop>
</select>
<!--- Select city based on state --->
<select wire:model.live="city" wire:key="#state#">
<option disabled value="">Select a city</option>
<cfloop array="#getCities( state )#" index="city">
<option value="#city.id#">#city.label#</option>
</cfloop>
</select>