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. Der Zweck besteht darin, diese einzelnen Bestandteile zu einer 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 können zu einer Liste ohne Dubletten konsolidiert werden, dies ist allerdings Aufgabe des Nutzers. Ein Objekt der Klasse speicher die einzelnen Bestandteile nur, sie manipuliert sie nicht (außer, dass im Skalarkontext Teile konkateniert werden).
$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.178
Frank Seitz, http://fseitz.de/
Copyright (C) 2020 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.