Quiq::Html::Component - Eigenständige Komponente einer HTML-Seite
Quiq::Hash
use Quiq::Html::Component; # Instantiiere Objekt $c = Quiq::Html::Component->new( name => $name resources => \@resources, css => $css | \@css, html => $html | \@html, js => $js | \@js, ready => $js | \@js, ); # Frage Eigenschaften ab $name = $c->name; @resources = $c->resources; $css | @css = $c->css; $html | @html = $c->html; $js | @js = $c->js; $ready | @ready = $c->ready; # Generiere HTML-Fragment $h = Quiq::Html::Tag->new; $html = $c->fragment($h);
Ein Objekt der Klasse repräsentiert eine eigenständige Komponente einer HTML-Seite bestehend aus HTML-, CSS- und JavaScript-Code (normaler Code und jQuery ready-Handler). Der Zweck besteht darin, diese Bestandteile zu einer logischen Einheit zusammenzufassen. Die Bestandteile können über Methoden der Klasse abgefragt werden, um sie systematisch in die unterschiedlichen Abschnitte einer HTML-Seite (<head>, <body>, <style>, <script>, $(function() {...})) einsetzen zu können. Die Resourcen mehrerer Komponenten (Attribut resources) können zu einer Liste ohne Dubletten konsolidiert werden. Dies ist allerdings Aufgabe des Nutzers bzw. der Klasse Quiq::Html::Component::Bundle. Ein Objekt der Klasse speichert die einzelnen Bestandteile lediglich, die Methoden manipulieren diese nicht. Einzig die Methode fragment() führt eine Verarbeitung durch, indem sie zusammenfassenden HTML-Code über allen Komponenten generiert.
$c = $class->new(@keyVal);
Alle Attribute außer name können mehrfach angegeben werden.
name
Name der Komponente. Unter diesem Namen kann die Komponente aus einem Bündel von Komponenten ausgewählt werden. Siehe Quiq::Html::Bundle.
Liste von Resourcen (CSS- und JavaScript-Dateien), die von der Komponente benötigt werden. Eine Resource wird durch ihren URL spezifiziert. Es sollte eine einheitliche Schreibweise über mehreren Komponenten verwendet werden, damit die Resource-Listen konsolidiert werden können.
Der CSS-Code der Komponente. Besteht der CSS-Code aus mehreren Teilen, kann das Attribut mehrfach oder eine Array-Referenz angegeben werden.
Der HTML-Code der Komponente. Besteht der HTML-Code aus mehreren Teilen, kann das Attribut mehrfach oder eine Array-Referenz angegeben werden.
Der JavaScript-Code der Komponente. Besteht der JavaScript-Code aus mehreren Teilen, kann das Attribut mehrfach oder eine Array-Referenz angegeben werden.
Der Ready-Handler der Komponente. Gibt es mehrere Ready-Handler kann das Attribut mehrfach oder eine Array-Referenz angegeben werden.
Instantiiere ein Objekt der Klasse und liefere eine Referenz auf dieses Objekt zurück.
$css | @css = $c->css;
Liefere den CSS-Code der Komponente. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
$html = $c->fragment($h); $html = $class->fragment($h,@keyVal);
Generiere den Frament-Code der Komponente und liefere diesen zurück. Als Klassenmethode gerufen, wird das Objekt intern erzeugt und mit den Attributen @keyVal instantiiert.
Der Fragment-Code besteht aus dem HTML-, CSS- und JavaScript-Code der Komponente. Anwendungsfall ist z.B. eine Ajax-Antwort, die in ein bestehendes HTML-Dokument eingebettet wird.
Der generierte Code hat den Aufbau:
<RESOURCEN LADEN> <STYLE CODE> <HTML CODE> <JAVASCRIPT CODE>
$html | @html = $c->html;
Liefere den HTML-Code der Komponente. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
$js | @js = $c->js;
Liefere den JavaScript-Code der Komponente. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
$name = $c->name;
Liefere den Namen der Komponente.
$ready | @ready = $c->ready;
Liefere den/die Ready-Handler der Komponente. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
@resources | $resourceA = $c->resources;
Liste der Resource-URLs. Im Skalarkontext eine Referenz auf die Liste.
Liefere die Liste der Resource-URLs der Komponente.
@arr | $str = $obj->getValue($key);
Liefere den Wert des Attributs $key. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
$obj->putValue($key=>$val);
Setze den Wert $val des Attributs $key oder füge ihn hinzu.
1.208
Frank Seitz, http://fseitz.de/
Copyright (C) 2023 Frank Seitz
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install Quiq, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Quiq
CPAN shell
perl -MCPAN -e shell install Quiq
For more information on module installation, please visit the detailed CPAN module installation guide.