请求捆绑
您是视觉学习者吗?
通过我们深入的屏幕录制掌握 Livewire
立即观看
Livewire 中的每个组件更新都会触发网络请求。默认情况下,当多个组件同时触发更新时,它们会被捆绑到一个请求中。
这会导致与服务器的网络连接减少,并可以显著降低服务器负载。
除了性能提升之外,这还内部解锁了需要多个组件协作的功能(响应式属性、可建模属性等)。
但是,有时出于性能原因,需要禁用此捆绑。以下页面概述了在 Livewire 中自定义此行为的各种方法。
隔离组件请求
通过使用 Livewire 的 #[Isolate]
类属性,您可以将组件标记为“隔离”。这意味着每当该组件进行服务器往返时,它都会尝试将自己与其他组件请求隔离。
如果更新很昂贵,并且您希望与其他更新并行执行此组件的更新,则此功能很有用。例如,如果多个组件正在使用 wire:poll
或在页面上侦听事件,您可能希望隔离特定组件,其更新很昂贵,否则会阻止整个请求。
use Livewire\Attributes\Isolate;use Livewire\Component; #[Isolate] class ShowPost extends Component{ // ...}
通过添加 #[Isolate]
属性,此组件的请求将不再与其他组件更新捆绑在一起。
延迟组件默认情况下是隔离的
当单个页面上的许多组件“延迟”加载(使用 #[Lazy]
属性)时,通常希望它们的请求被隔离并并行发送。因此,Livewire 默认隔离延迟更新。
如果你希望禁用此行为,你可以将 isolate: false
参数传递到 #[Lazy]
属性中,如下所示
<?php namespace App\Livewire; use Livewire\Component;use Livewire\Attributes\Lazy; #[Lazy(isolate: false)] class Revenue extends Component{ // ...}
现在,如果同一页面上存在多个 Revenue
组件,所有十次更新将被捆绑并作为单个延迟加载网络请求发送到服务器。