{"id":9941,"date":"2024-04-11T11:08:14","date_gmt":"2024-04-11T09:08:14","guid":{"rendered":"https:\/\/via-internet.de\/blog\/?p=9941"},"modified":"2024-04-11T12:07:40","modified_gmt":"2024-04-11T10:07:40","slug":"laravel-erstellen-einer-blade-komponente","status":"publish","type":"post","link":"https:\/\/via-internet.de\/blog\/2024\/04\/11\/laravel-erstellen-einer-blade-komponente\/","title":{"rendered":"Laravel | Erstellen einer Blade Komponente"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\" id=\"tl-dr\">TL;DR<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Der Code f\u00fcr die in diesem Post erstelle Anwendung liegt <a href=\"https:\/\/github.com\/r14r\/Laravel_Tutorial_Erstellen-einer-Blade-Komponente\" data-type=\"link\" data-id=\"https:\/\/github.com\/r14r\/Laravel_Tutorial_Arbeiten-mit-htmx\">hier<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"laravel-okosystem\">Einrichten der Starter-App<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Erstellen der Starter App. In <a href=\"https:\/\/via-internet.de\/blog\/2024\/04\/10\/laravel-erstellen-einer-starter-app\/\" data-type=\"link\" data-id=\"https:\/\/via-internet.de\/blog\/2024\/04\/10\/laravel-erstellen-einer-starter-app\/\">diesem<\/a> Post beschreibe ich, wie sie eine Starter-App erstellen und die grundlegenden Anpassungen durchf\u00fchren k\u00f6nnen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sie k\u00f6nnen auch direkt mit dem dazugeh\u00f6rigen Repository starten:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u276f git clone https:\/\/github.com\/r14r\/Laravel_Tutorial_Erstellen-einer-Starter-App Laravel_Tutorial_Arbeiten-mit-htmx<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u276f composer install\n\u276f npm install\n\u276f npm run build<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u276f cp .env.example  .env\n\u276f php artisan migrate\n\u276f php artisan key:generate<\/pre>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u276f php artisan serve<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"701\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_startpage-1024x701.png\" alt=\"\" class=\"wp-image-9914\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_startpage-1024x701.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_startpage-300x205.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_startpage-768x526.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_startpage-1536x1051.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/laravel_startpage-2048x1402.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Motivation<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Betrachten wir sie Startseite der Starterapp: <code>welcome.blade.php<\/code>. Es f\u00e4llt auf, das es viele Code-Wiederholungen gibt,  z. B bei den \u00dcberschriften<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">1013: &lt;h2 class=\"text-xl font-semibold text-black dark:text-white\">Laracasts&lt;\/h2>\n1047: &lt;h2 class=\"text-xl font-semibold text-black dark:text-white\">Laravel News&lt;\/h2>\n1077: &lt;h2 class=\"text-xl font-semibold text-black dark:text-white\">Vibrant Ecosystem&lt;\/h2><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nicht nur, das mehrfach den gleichen Code geschrieben wurde, auch bei \u00c4nderungen muss an mehreren Stellen ge\u00e4ndert werden.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dabei sollte aus Designer-Sicht das Layout oder Aussehend der Seite aus &#8220;logischen&#8221; Bestandteilen bestehen, z. B. einer \u00dcberschrift, einer Kopfzeile, einen Textabschnitt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Das aussehen dieser Bestandteile wird dann an andere Stelle festgelegt, aber jeder dieser Bestandteile hat das gleiche Aussehen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Unsere Startseite w\u00fcrde dann vielleicht so aussehen:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;starter-header>Laracasts&lt;\/starter-header>\n&lt;starter-header>Laravel News&lt;\/starter-header>\n&lt;starter-header>Vibrant Ecosystem&lt;\/starter-header><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcgen wird diesen Bestandteile auch noch Parameter hinzu, so vereinfacht sich die Startseite so:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;starter-header title=\"Laracasts\"\/>\n&lt;starter-header title\"Laravel News\" \/>\n&lt;starter-header title=\"Vibrant Ecosystem\" \/><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Um dies zu implementieren, setzen wir <a href=\"https:\/\/laravel.com\/docs\/11.x\/blade\" data-type=\"link\" data-id=\"https:\/\/laravel.com\/docs\/11.x\/blade\">Blade<\/a> Komponenten ein.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hinweis: Der Begriff Blade kommt ihnen vielleicht bekannt vor. Sie haben ihn bestimmt schon in den Dateinamen gesehen:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">welcome.blade.php<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Was ist Blade. <\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die Projektseite formuliert es so:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><cite>Blade is the simple, yet powerful templating engine that is included with Laravel.<\/cite><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Oder, wie Wikipedia es formuliert: <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Funktional erweiterbare Templating-Sprache zur Erstellung von Views.<\/em><\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Blade ist <em>Funktional erweiterbare Templating-Sprache zur Erstellung von Views.<\/em>.<br>Eine\u00a0<strong>Template-Engine<\/strong>\u00a0(von\u00a0englisch\u00a0f\u00fcr\u00a0<em>Vorlage<\/em>\u00a0bzw.\u00a0<em>Schablone<\/em>\u00a0und\u00a0<em>Maschine<\/em>) ist eine\u00a0Software, die eine Vorlagen-Datei (engl.\u00a0Template) verarbeitet und bestimmte Platzhalter darin \u00e4hnlich wie bei einem Formular durch jeweils aktuelle Inhalte ersetzt.\u00a0<\/p>\n<\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Unsere Blade besteht also nicht nur aus grafischen Elementen, z. B. Text, Icon, Auswahlbox. Sondern auch aus Programmkomponenten um diese Seite mit dynamischen Werten zu f\u00fcllen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bezogen auf unser Beispiel des <code>&lt;starter-header> <\/code>besteht der dynamische Teil aus dem tat\u00e4chlich anzuzeugendem Text. Dadurch kann diese Komponente an beliebiger Stelle eingesetzt werden und jedesmal einen anderen Text darstellen, immer mit dem gleichen Aussehen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Erstellen wir also unsere erste Komponente.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Blade Komponente erstellen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Wir erstellen eine Komponente mit dem nachfolgenden Kommando:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u276f php artisan make:component StarterHeader<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"94\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.20.14-1024x94.png\" alt=\"\" class=\"wp-image-9952\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.20.14-1024x94.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.20.14-300x28.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.20.14-768x70.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.20.14-1536x141.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.20.14-2048x188.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Dadurch werden zwei neue Dateien erstellt:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"814\" height=\"146\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.21.34.png\" alt=\"\" class=\"wp-image-9953\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.21.34.png 814w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.21.34-300x54.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.21.34-768x138.png 768w\" sizes=\"auto, (max-width: 814px) 100vw, 814px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>resources\/views\/components\/starter-header.blade.php<\/code><br>In dieser Datei wird das Aussehen der Komponente festgelegt, Dabei k\u00f6nnen zus\u00e4tzlich &#8220;Variablen&#8221; (also die dynamischen Teile) verwende werden.<\/li>\n\n\n\n<li><code>app\/View\/Components\/StarterHeader.php<\/code><br>Diese ist die zum Blade-View zugeh\u00f6roge PHP-Klasse. In dieser Daten wird die Verbindung zwischen dem Komponentennamen (starter-header) und dem dazugeh\u00f6rigen View definiert. Zus\u00e4tzlich werden hier auch die dynamischen Teile festgelegt, also die Parameter f\u00fcr unsere Komponente (im Beispiel &#8220;title&#8221;)<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Blade Komponente konfigurieren <\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">PHP Klasse: <code>app\/View\/Components\/StarterHeader.php<\/code><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Betrachten wird im ersten Schritt die PHP Klasse der Komponente: <code>app\/View\/Components\/StarterHeader.php<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"584\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.30.33-1024x584.png\" alt=\"\" class=\"wp-image-9954\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.30.33-1024x584.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.30.33-300x171.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.30.33-768x438.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.30.33-1536x876.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.30.33.png 1722w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Der Name der Klasse in Zeile 9: <code>StarterHeader<\/code><\/li>\n\n\n\n<li>Den dazugeh\u00f6rigen Blade-View in Zeile 24: <code>components.starter-header<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">F\u00fcgen wir nun einen Parameter f\u00fcr unsere Komponente hinzu: <code>title<\/code><\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">    public $title;\n\n    public function __construct($title = 'Header')\n    {\n        $this->title = $title;\n    }<\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"1004\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.37.39-1024x1004.png\" alt=\"\" class=\"wp-image-9955\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.37.39-1024x1004.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.37.39-300x294.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.37.39-768x753.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.37.39.png 1150w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wird in einer Blade-Seite einen Komponenten verwendet, so wird der Konstruktor (<code>__construct)<\/code> dieser Komponente aufgerufen, um den notwendigen Programmcode zu erstellen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Die beim Aufruf angegebene Parameter werden diesem Konstruktor \u00fcbergeben.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Der Aufruf:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;starter-header title=Laravel\" \/><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">f\u00fchrt zu einem Aufruf des Konstruktor <code>__construct(\"Laravel\")<\/code>. Der Parameter <code>$title<\/code> wird dabei durch den angegebene Wert <code>\"Laravel\"<\/code> ersetzt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Blade View: resources\/views\/components\/starter-header.blade.php<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Betrachten wir nun den Blade-View in der Datei <code>resources\/views\/components\/starter-header.blade.php<\/code>:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"179\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.42.26-1024x179.png\" alt=\"\" class=\"wp-image-9958\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.42.26-1024x179.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.42.26-300x53.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.42.26-768x134.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.42.26-1536x269.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.42.26-2048x358.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Der View hat noch sehr wenig Inhalt. Wir ersetzen nun den vorhandenen Inhalt mit dem Inhalt aus der Datei <code>welcome.blade.php<\/code>, der f\u00fcr die Formatierung und Darstellung es Headers verwendet wird:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"293\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.48.30-1024x293.png\" alt=\"\" class=\"wp-image-9959\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.48.30-1024x293.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.48.30-300x86.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.48.30-768x220.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.48.30-1536x440.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-11.48.30-2048x587.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wir sehen zwei Header: in Zeile 1013 und in Zeile 1047. Beide beinhalten die gleichen HTML-Anweisungen und unterscheiden sich nur im Text des Headers:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;h2 class=\"text-xl font-semibold text-black dark:text-white\">Laracasts&lt;\/h2><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Wir kopieren also diese Anweisungen in unseren Blade-View. Dabei ersetzen wir gleichzeitig den (statischen) Text, z. B. <em>Laracast<\/em>, durch unsere Variable <code>$title<\/code>, die den gew\u00fcscnhten Titel enth\u00e4lt.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"178\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-12.02.50-1024x178.png\" alt=\"\" class=\"wp-image-9960\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-12.02.50-1024x178.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-12.02.50-300x52.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-12.02.50-768x134.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-12.02.50.png 1160w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Hinweis: Damit Blade erkenne kann, wann HTML Code verwendet wird und wann Programmcode, wird dieser durch die Zeichen <code>{{<\/code> und <code>}}<\/code> umschlossen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In unserer Seite <code>welcome.blade.php<\/code> k\u00f6nnen wir nun die Komponente einsetzen und den vorhandenen Text ersetzen:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"134\" src=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-12.06.24-1024x134.png\" alt=\"\" class=\"wp-image-9963\" srcset=\"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-12.06.24-1024x134.png 1024w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-12.06.24-300x39.png 300w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-12.06.24-768x101.png 768w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-12.06.24-1536x202.png 1536w, https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2024\/04\/Bildschirmfoto-2024-04-11-um-12.06.24.png 1966w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Wichtig: Beachten Sie, das wir dem Komponentennamen mit <code>x-<\/code> beginnen m\u00fcssen:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;x-starter-header title=\"Vibrant Ecosystem\" \/><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>TL;DR Der Code f\u00fcr die in diesem Post erstelle Anwendung liegt hier. Einrichten der Starter-App Erstellen der Starter App. In diesem Post beschreibe ich, wie sie eine Starter-App erstellen und die grundlegenden Anpassungen durchf\u00fchren k\u00f6nnen. Sie k\u00f6nnen auch direkt mit dem dazugeh\u00f6rigen Repository starten: Motivation Betrachten wir sie Startseite der Starterapp: welcome.blade.php. Es f\u00e4llt auf, das es viele Code-Wiederholungen gibt, z. B bei den \u00dcberschriften Nicht nur, das mehrfach den gleichen Code geschrieben wurde, auch bei \u00c4nderungen muss an mehreren Stellen ge\u00e4ndert werden. Dabei sollte aus Designer-Sicht das Layout oder Aussehend der Seite aus &#8220;logischen&#8221; Bestandteilen bestehen, z. B. einer \u00dcberschrift, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":8087,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[99,57],"tags":[],"class_list":["post-9941","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-laravel","category-php"],"jetpack_featured_media_url":"https:\/\/via-internet.de\/blog\/wp-content\/uploads\/2021\/07\/Laravel-Installation-einer-Beispielanwendung.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/9941","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/comments?post=9941"}],"version-history":[{"count":9,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/9941\/revisions"}],"predecessor-version":[{"id":9965,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/posts\/9941\/revisions\/9965"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/media\/8087"}],"wp:attachment":[{"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/media?parent=9941"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/categories?post=9941"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/via-internet.de\/blog\/wp-json\/wp\/v2\/tags?post=9941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}