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
只是想讓事情變得簡(jiǎn)單。能否讓 Livewire 組件的視圖進(jìn)行條件渲染。
示例:
在您的 Livewire 組件中
public $show_skeleton = true;
在 Livewire 組件的視圖中
@if ($show_skeleton)@endif
在您的 Livewire 組件類(lèi)中
public function showSkeleton() { $this->show_skeleton = true; } public function hideSkeleton() { $this->show_skeleton = false; }
現(xiàn)在使用上述方法來(lái)顯示和隱藏你的骨架。
根據(jù)文檔,您可以在您的配置。因此,您可以創(chuàng)建一個(gè)呈現(xiàn)組件的視圖,然后在配置中設(shè)置它。這還使您不必在每個(gè)組件上定義相同的占位符。
但是,從外觀上看,您可以傳入任何字符串,因此您也可以只返回渲染視圖:view('view')->render()
。同樣,與以前一樣,您可以只定義一個(gè)在其中渲染組件的視圖。