Siirry pääsisältöön

Importing Assets

Avaa ChatGPT:ssä

Assets annotations tarjoavat deklaratiivisen lähestymistavan ulkoisten ja sisäisten resurssien, kuten JavaScriptin ja CSS:n, upottamiseen sovellukseen staattisesti. Nämä annotaatiot virtaviivaistavat resurssien hallintaa varmistamalla, että riippuvuudet ladataan asianmukaisessa suoritusvaiheessa, mikä vähentää manuaalista konfigurointia ja parantaa ylläpidettävyyttä.

JavaScript-tiedostojen tuominen

Deklaratiivinen JavaScriptin sisällyttäminen on tuettu @JavaScript-annotaation kautta, mikä mahdollistaa automaattisen riippuvuuksien lataamisen. Annotaatio voidaan soveltaa sekä komponenttitasolla että sovellustasolla.

@JavaScript("ws://js/app.js")
@JavaScript("https://cdn.example.com/library.js")

Annotaatio hyväksyy suhteellisen tai täydellisen polun, joka ladataan sovellukseen. Tämä lisätään DOM:iin <script> -tagina. Lisäksi annotaatio tukee seuraavia ominaisuuksia:

OminaisuusTyyppiKuvausOletus
topBooleanMäärittää, tulisiko skripti injektoida ylimmälle tasollefalse
attributesObjectSetti atribuutteja, jotka sovelletaan skriptiin.{}

Esimerkki:

@JavaScript(value = "ws://my-component.js",
attributes = {@Attribute(name = "type", value = "module")})
tiedot

Tiedostot ladataan vain, kun komponentti, joka määrittelee annotaation, on liitetty säiliöön. Jos useat komponentit lataavat saman tiedoston, tiedosto injektoidaan vain kerran.

JavaScriptin injektoiminen

Jossakin tapauksessa saatat haluta injektoida JavaScript-koodia suoraan DOM:iin sen sijaan, että tarjoaisit JavaScript-polun. InlineJavaScript -annotaatio mahdollistaa JavaScript-sisällön injektoimisen.

@InlineJavaScript("alert('Olen sisäinen skripti!');")
@JavaScript("context://js/app.js")
OminaisuusTyyppiKuvausOletus
topBooleanMäärittää, tulisiko skripti injektoida ylimmälle tasollefalse
attributesObjectAtribuutit, jotka sovelletaan skriptiin{}
idStringAinulaatuinen resurssi-ID, joka varmistaa yhden injektion""
varoitus

Skriptejä voidaan injektoida useita kertoja InlineJavaScript-annotaation avulla, ellei erityistä ID:tä ole määritetty käyttämällä id-ominaisuutta.

CSS-tiedostojen tuominen

Deklaratiivinen CSS:n sisällyttäminen on tuettu @StyleSheet -annotaation kautta, mikä mahdollistaa automaattisen riippuvuuksien lataamisen. Annotaatio voidaan soveltaa sekä komponenttitasolla että sovellustasolla.

@StyleSheet("ws://css/app.css")
@StyleSheet("https://cdn.example.com/library.css")
OminaisuusTyyppiKuvausOletus
topBooleanMäärittää, tulisiko StyleSheet injektoida ylimmälle tasollefalse
attributesObjectAtribuutit, jotka sovelletaan StyleSheetille{}

Esimerkki:

@StyleSheet(value = "ws://my-component.css",
attributes = {@Attribute(name = "media", value = "screen")})
tiedot

Tiedostot ladataan vain, kun komponentti, joka määrittelee annotaation, on liitetty säiliöön. Jokainen tiedosto ladataan vain kerran.

CSS:n injektoiminen

InlineStyleSheet -annotaatio mahdollistaa CSS-sisällön injektoimisen suoraan verkkosivulle sekä komponenttitasolla että sovellustasolla.

@InlineStyleSheet("body { background-color: lightblue; }")
@InlineStyleSheet(value = "h1 { color: red; }", id = "headingStyles", once = true)
OminaisuusTyyppiKuvausOletus
topBooleanMäärittää, tulisiko StyleSheet injektoida verkkosivun ylimmälle tasolle.false
attributesObjectSetti attribuutteja, jotka sovelletaan tyyli elementtiin.{}
idStringAinulaatuinen resurssi-ID. Jos useat resurssit sisältävät saman ID:n, ne yhdistetään yhteen tyyli elementtiin.""
onceBooleanMäärittää, injektoidaanko StyleSheet sivulle vain kerran, riippumatta useista komponenttiinstansseista.true
vinkki

Parempaa syntaksin korostusta inline-CSS:n kirjoittamiselle komponenteillesi varten voit käyttää webforJ VS Code -laajennusta: Java HTML CSS Syntaksin korostus.

Dynaamiset resurssit ajon aikana

Dynaaminen resurssien hallinta on mahdollista JavaScriptin ja CSS:n ohjelmallisen injektoinnin avulla ajon aikana. Voit ladata tai injektoida resursseja ajon aikaisesta kontekstista riippuen.

JavaScriptin lataaminen ja injektoiminen

Lataa tai injektoi JavaScript ajon aikana käyttämällä Page API:ta. Tämä mahdollistaa skriptien lataamisen URL-osoitteista tai inline-skriptien injektoimisen suoraan DOM:iin.

Page page = Page.getCurrent();

// Lataaminen JavaScript-tiedostoja
page.addJavaScript("ws://js/app.js");
page.addJavaScript("https://cdn.example.com/library.js");

// Inline JavaScriptin injektoiminen
page.addInlineJavaScript("console.log('Ajon aikainen injektio');");
page.addInlineJavaScript("alert('Tämä skripti suoritetaan inline');");
ParametriKuvaus
scriptURL-osoite tai inline-skripti-in sisältö, joka injektoidaan. URL-osoitteet, jotka alkavat context://, viittaavat sovelluksen juuresresurssikansioon.
topMäärittää, tulisiko skripti injektoida sivun yläosaan.
attributesMap-a attribuuteista, jotka asetetaan skriptille.

CSS:n lataaminen ja injektoiminen

Lataa tai injektoi CSS ajon aikana käyttämällä Page API:ta. Tämä mahdollistaa tyylitiedostojen lataamisen URL-osoitteista tai inline-tyylien injektoimisen suoraan DOM:iin.

Page page = Page.getCurrent();

// Lataaminen CSS-tiedostoja
page.addStyleSheet("ws://css/app.css");
page.addStyleSheet("https://cdn.example.com/library.css");

// Inline CSS:n injektoiminen
page.addInlineStyleSheet("body { background-color: lightblue; }");
page.addInlineStyleSheet("h1 { font-size: 24px; color: navy; }");
ParametriKuvaus
stylesheetURL-osoite tai inline StyleSheet -sisältö, joka injektoidaan. URL-osoitteet, jotka alkavat context://, viittaavat sovelluksen juuresresurssikansioon.
topMäärittää, tulisiko StyleSheet injektoida sivun yläosaan.
attributesMap-a attribuuteista, jotka asetetaan StyleSheetille.