NAME
Quiq::Html::Component - Eigenständige Komponente einer HTML-Seite
BASE CLASS
SYNOPSIS
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);
DESCRIPTION
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 speichert die einzelnen Bestandteile nur, sie manipuliert sie nicht (außer, dass im Skalarkontext Teile konkateniert werden).
METHODS
Konstruktor
new() - Instantiiere Objekt
Synopsis
$c = $class->new(@keyVal);
Attributes
Alle Attribute außer name
können mehrfach angegeben werden.
- name => $name
-
Name der Komponente. Unter diesem Namen kann die Komponente aus einem Bündel von Komponenten ausgewählt werden. Siehe Quiq::Html::Bundle.
- resources => \@resources
-
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.
- css => $css | \@css
-
Der CSS-Code der Komponente. Besteht der CSS-Code aus mehreren Teilen, kann das Attribut mehrfach oder eine Array-Referenz angegeben werden.
- html => $html | \@html (Default: '')
-
Der HTML-Code der Komponente. Besteht der HTML-Code aus mehreren Teilen, kann das Attribut mehrfach oder eine Array-Referenz angegeben werden.
- js => $js | \@js
-
Der JavaScript-Code der Komponente. Besteht der JavaScript-Code aus mehreren Teilen, kann das Attribut mehrfach oder eine Array-Referenz angegeben werden.
- ready => $js | \@js
-
Der Ready-Handler der Komponente. Gibt es mehrere Ready-Handler kann das Attribut mehrfach oder eine Array-Referenz angegeben werden.
Description
Instantiiere ein Objekt der Klasse und liefere eine Referenz auf dieses Objekt zurück.
Objektmethoden
css() - CSS-Code der Komponente
Synopsis
$css | @css = $c->css;
Description
Liefere den CSS-Code der Komponente. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
fragment() - Generiere HTML
Synopsis
$html = $c->fragment($h);
$html = $class->fragment($h,@keyVal);
Description
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-Code der Komponente
Synopsis
$html | @html = $c->html;
Description
Liefere den HTML-Code der Komponente. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
js() - JavaScript-Code der Komponente
Synopsis
$js | @js = $c->js;
Description
Liefere den JavaScript-Code der Komponente. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
name() - Name der Komponente
Synopsis
$name = $c->name;
Description
Liefere den Namen der Komponente.
ready() - Ready-Handler der Komponente
Synopsis
$ready | @ready = $c->ready;
Description
Liefere den/die Ready-Handler der Komponente. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
resources() - Resourcen der Komponente
Synopsis
@resources | $resourceA = $c->resources;
Returns
Liste der Resource-URLs. Im Skalarkontext eine Referenz auf die Liste.
Description
Liefere die Liste der Resource-URLs der Komponente.
Private Methoden
getValue() - Liefere Attributwert
Synopsis
@arr | $str = $obj->getValue($key);
Description
Liefere den Wert des Attributs $key. Im Arraykontext die Liste der Array-Elemente, im Skalarkontext deren Konkatenation.
putValue() - Setze Attributwert oder füge ihn hinzu
Synopsis
$obj->putValue($key=>$val);
Description
Setze den Wert $val des Attributs $key oder füge ihn hinzu.
VERSION
1.180
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2020 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.