【发布时间】:2021-06-26 00:23:59
【问题描述】:
我想加载视图然后更新变量数据以停止页面加载时间(加载大量数据)。 Laravel livewire 可以做到这一点吗?
我正在尝试让 livewire 呈现视图,然后在页面加载后更新公共变量。就我而言,我将从 api 获取数据,因此我希望用户看到页面,然后我可以在获取数据的同时添加一些加载微调器。
但是,根据我的测试并查看 livewire lifecycle,我的测试变量没有更新。
Livewire 控制器示例
class Example extends Component
{
public $test;
public function mount()
{
$this->test = 'hi';
}
public function render()
{
return view('livewire.example');
}
public function hydrate()
{
$this->test = 'TEST1';
}
public function hydrateTest()
{
$this->test = 'TEST2';
}
public function dehydrate()
{
$this->test = 'TEST3';
}
}
Livewire 刀片示例
<div>
<p>Hello World</p>
<p>{{ $test }}</p>
</div>
生命周期钩子说 dehydrate 在 render() 之后运行,这意味着 $test should = 'TEST3 但它保持为“嗨”,我的初始状态。
似乎也有 javascript 钩子,比如当组件被初始化时。但我不确定如何从那里调用 livewire 函数或变量。
有谁知道如何在视图渲染后更新 livewire 变量?
【问题讨论】:
标签: php laravel laravel-livewire