Laravel 5.4 Blade führte das Konzept der Komponenten & amp; Slots - aber ich kann nicht sehen, was sie über das traditionelle @include hinzufügen. Wie ich es verstehe, mit Komponenten / Slots, tun Sie:
In der Vorlage component-tpl.blade.php:
%Vor%Wenn Sie Slots in einer Seitenvorlage verwenden, tun Sie Folgendes:
%Vor%Welche Funktionalität bietet das ältere?
%Vor%mit der gleichen 'component-tpl.blade.php' Blade-Vorlage?
Was vermisse ich? Danke für alle Einsichten.
Chris
Wie gesagt, gibt es keinen funktionellen Unterschied, aber die sorgfältige Verwendung beider kann Ihnen sauberere Blade-Dateien geben.
Wenn ein Slot HTML enthalten könnte, würde die Verwendung einer Komponente eine sauberere Syntax in Ihren Blade-Dateien ermöglichen.
%Vor%versus
%Vor%Wenn eine Komponente keine Steckplätze hat, ist ein Include ebenfalls bevorzugt:
%Vor%versus
%Vor%Wie die Dokumentation sagt:
Komponenten und Steckplätze bieten ähnliche Vorteile für Sektionen und Layouts; jedoch können einige das mentale Modell der Komponenten und finden Slots leichter zu verstehen .
Ich glaube, ich habe einen weiteren entscheidenden Unterschied herausgefunden. Zum Beispiel aus der Dokumentation für 5.4:
Mit der @ include-Direktive von Blade können Sie eine Blade-Ansicht in eine andere Ansicht einfügen. Alle Variablen, die für die übergeordnete Ansicht verfügbar sind, werden für die enthaltene Ansicht verfügbar gemacht:
Soweit ich feststellen kann, haben Komponenten einen Unterschiedsbereich von einer enthaltenden Ansicht und daher sind die Variablen, die für die übergeordnete Ansicht verfügbar sind, innerhalb der Komponente nicht verfügbar. Sie müssen eine Variable wie folgt an eine Komponente übergeben:
%Vor%Diese Diskussion bezieht sich auf dieses Problem: Verwenden Sie Variablen in den Markdown Mailables
Tags und Links php laravel laravel-5.4 blade laravel-blade