Heim > Fragen und Antworten > Hauptteil
Ich möchte das Skelett meiner Laravel-Komponente in den Livewire 3-Platzhalter einfügen Was ich bisher versucht habe:
Implementieren Sie die Livewire-Klasse, indem Sie die Laravel-Komponente einbinden:
public function placeholder() { return <<<'HTML' <x-skeleton /> HTML; }
Die obige Methode rendert nichts,
Aber wenn ich versuche, reines HTML wie folgt zu verwenden:
public function placeholder() { return <<<'HTML' <div class="card" aria-hidden="true"> <div class="card-body"> <p class="card-text placeholder-glow"> <span class="placeholder col-12"></span> </p> <p class="card-text placeholder-glow"> <span class="placeholder col-12"></span> </p> </div> </div> HTML; }
Die Wirkung ist sehr gut, Aufgrund der Wiederverwendbarkeit bevorzuge ich die Verwendung von Laravel-Komponenten So lösen Sie dieses Problem
P粉6429198232024-04-07 18:44:06
只是想让事情变得简单。能否让 Livewire 组件的视图进行条件渲染。
示例:
在您的 Livewire 组件中
public $show_skeleton = true;
在 Livewire 组件的视图中
@if ($show_skeleton)@endif
在您的 Livewire 组件类中
public function showSkeleton() { $this->show_skeleton = true; } public function hideSkeleton() { $this->show_skeleton = false; }
现在使用上述方法来显示和隐藏你的骨架。
P粉0356005552024-04-07 18:27:32
根据文档,您可以在您的配置。因此,您可以创建一个呈现组件的视图,然后在配置中设置它。这还使您不必在每个组件上定义相同的占位符。
但是,从外观上看,您可以传入任何字符串,因此您也可以只返回渲染视图:view('view')->render()
。同样,与以前一样,您可以只定义一个在其中渲染组件的视图。