NAME
Quiq::Html::Component - Eigenständige Komponente einer HTML-Seite
BASE CLASS
SYNOPSIS
# 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 (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.
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.225
AUTHOR
Frank Seitz, http://fseitz.de/
COPYRIGHT
Copyright (C) 2025 Frank Seitz
LICENSE
This code is free software; you can redistribute it and/or modify it under the same terms as Perl itself.