首页 > 解决方案 > Livewire:模型更改时如何禁用对服务器的获取请求?

问题描述

每次模型中的字段发生更改时,都会向服务器发送一个请求,其中包含组件中的更改。这是疯狂的行为。为什么这样做?为什么不在客户端处理更改?

示例:用户模型。我写了一个电子邮件地址,当您输入每个字符时,就会向服务器发送一个请求。电子邮件地址的长度为 24 个字符 - 向服务器发送了 24 个请求。

我怎样才能禁用它?

标签: laravel-livewire

解决方案


每次模型中的字段发生更改时,都会向服务器发送一个请求,其中包含组件中的更改。这是疯狂的行为。为什么这样做?为什么不在客户端处理更改?

这是设计使然,当您将input字段与component property.

我怎样才能禁用它?

有几个选项可供您使用:

  1. 增加debounce默认设置为 的值150ms
<input type="text" wire:model.debounce.500ms="name">
  1. change仅在触发输入元素本机事件(用户点击离开)后才向服务器发送请求。
<input type="text" wire:model.lazy="message">
  1. 推迟将请求发送到服务器,直到执行操作以手动触发服务器请求:
<input type="text" wire:model.defer="query">
<button wire:click="search">Search</button>

推荐阅读