我的 Livewire 组件
在以下的 MyLivewireComponent.php
文件中,定义了一个 Livewire 组件,用于展示人员列表:
<?php
namespace App\Livewire;
use Livewire\Component;
use App\Models\Person;
class MyLivewireComponent extends Component {
public $persons;
public function mount() {
$this->persons = Person::all();
}
public function render() {
return view('livewire.my-livewire-component');
}
}
?>
当浏览器窗口获得焦点(触发 focus
事件)时,我希望通过重新执行以下语句来更新 $persons
变量的内容和值:
$this->persons = Person::all();
这样,如果有新增人员,就能确保始终获取到最新的人员集合。
对应的 Blade 视图文件 my-livewire-component.blade.php
如下:
<select>
@foreach($persons as $person)
<option value="{{ $person->id }}">{{ $person->name }}</option>
@endforeach
</select>
这样,用户回到 web 应用时,下拉列表始终保持最新状态。
问题在于:如何在浏览器窗口获得焦点时,更新 Livewire 组件类中的变量?