SlideShare a Scribd company logo
Libreria per la creazione di web components
ELEONORA ROCCHI


- 2022 -
Lit si può facilmente aggiungere a progetti esistenti:


i component Lit infatti funzionano con qualsiasi framework JavaScript,
sistema di template server e CMS.
ER 2022
Un component Lit infatti può essere utilizzato direttamente nell’HTML,


con le API DOM o nei template.


La maggior parte dei framework JavaScript ha un ottimo supporto per i Web
component e Lit: è su
ff
iciente importare la de
f
inizione dell'elemento ed
utilizzare i nomi dei tag dell'elemento nei modelli.
ER 2022
Come aggiungere Lit


ad un progetto esistente
ER 2022
Per prima cosa, si installa il pacchetto Lit da riga di comando, con npm
ER 2022
In qualsiasi cartella di progetto si può creare un nuovo elemento, utilizzando JSX
ER 2022
Cos’è JSX
JavaScript Syntax Extension
ER 2022
JSX è un linguaggio utilizzato per la creazione di modelli.


Si tratta di un’estensione della sintassi JavaScript.
ER 2022
Cos’è un componente Lit
ER 2022
Un componente Lit è un pezzo riutilizzabile dell'interfaccia utente.


È una sorta di contenitore, con uno stato,


che visualizza un'interfaccia utente in base al suo stato.


Può reagire all'input dell'utente, attivare eventi,


qualsiasi ci si può aspettare da un componente dell'interfaccia utente.


Un componente Lit è un elemento HTML,


quindi ha tutte le API degli elementi standard.
ER 2022
ER 2022
Esempio:
ER 2022
Come de
f
inire un


web component con Lit
Si crea una classe che estende LitElement e la si registra con il browser:
ER 2022
In TS, il decoratore @customElement è un'abbreviazione per chiamare customElements.de
f
ine, che
registra una classe di elementi personalizzati con il browser e la associa a un nome di elemento (in
questo caso, simple-greeting).


Altrimenti si può usare JS:
De
f
inendo un componente Lit, si de
f
inisce un elemento HTML
personalizzato; si può usare il nuovo elemento come qualsiasi elemento
HTML:
ER 2022
La classe base LitElement


è una sotto-classe di HTMLElement,


perciò un componente Lit eredita tutte le proprietà


dei metodi standard di HTMLElement.
ER 2022
In particolare, LitElement eredita da ReactiveElement,


che implementa proprietà reattive,


e a sua volta eredita da HTMLElement.
ER 2022
TypeScript deduce la classe di un elemento
HTML restituito da alcune API DOM in base al
nome del tag.


Sappiamo ad esempio che
document.createElement('img') restituisce
un'istanza HTMLImageElement con una
proprietà src di tipo string.


Gli elementi personalizzati possono ottenere lo
stesso trattamento aggiungendo la mappatura
con HTMLElementTagNameMap.
ER 2022
ER 2022
In questo modo, il codice seguente esegue correttamente i controlli di tipo:
Conviene aggiungere una voce HTMLElementTagNameMap a tutti gli elementi


creati in TypeScript e pubblicare i tipi di .d.ts nel pacchetto npm.

More Related Content

Similar to LIT_1.pdf

WordPress LD07
WordPress LD07WordPress LD07
WordPress LD07
Giacomo
 
Presentazione Corso - Parte 1
Presentazione Corso - Parte 1Presentazione Corso - Parte 1
Presentazione Corso - Parte 1
Giorgio Carpoca
 
Presentazione wicket
Presentazione wicketPresentazione wicket
Presentazione wicket
Andrea Del Bene
 
Jquery mobile per App
Jquery mobile per AppJquery mobile per App
Jquery mobile per App
Salvatore Paone
 
react-it.pdf
react-it.pdfreact-it.pdf
react-it.pdf
ssuser65180a
 
Angular Components e Pipe
Angular Components e PipeAngular Components e Pipe
Angular Components e Pipe
CarlottaDimatteo
 
Laravel Framework PHP
Laravel Framework PHPLaravel Framework PHP
Laravel Framework PHP
Beniamino Ferrari
 
Meetup ASP.NET Core Angular
Meetup ASP.NET Core AngularMeetup ASP.NET Core Angular
Meetup ASP.NET Core Angular
dotnetcode
 
Giovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more thingsGiovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more things
KnowCamp
 
Guida introduttiva al codice HTML
Guida introduttiva al codice HTMLGuida introduttiva al codice HTML
Guida introduttiva al codice HTML
Enrico Mainero
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
Dominopoint - Italian Lotus User Group
 
Xml annessi e connessi
Xml annessi e connessiXml annessi e connessi
Xml annessi e connessi
Domenico Briganti
 
Introduzione ai css
Introduzione ai cssIntroduzione ai css
Introduzione ai css
gianlucatroiani
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
dotnetcode
 
DDive11 - xpages
DDive11 - xpagesDDive11 - xpages
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
Matteo Magni
 
Html e Css - 2 | WebMaster & WebDesigner
 Html e Css - 2 | WebMaster & WebDesigner Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
Matteo Magni
 
#dd12 grillo daniele_xpages_tips_tricks_rev2
#dd12 grillo daniele_xpages_tips_tricks_rev2#dd12 grillo daniele_xpages_tips_tricks_rev2
#dd12 grillo daniele_xpages_tips_tricks_rev2
Dominopoint - Italian Lotus User Group
 
Introduzione ad angular 7/8
Introduzione ad angular 7/8Introduzione ad angular 7/8
Introduzione ad angular 7/8
Valerio Radice
 
Dot net framework 2
Dot net framework 2Dot net framework 2
Dot net framework 2
Felice Pescatore
 

Similar to LIT_1.pdf (20)

WordPress LD07
WordPress LD07WordPress LD07
WordPress LD07
 
Presentazione Corso - Parte 1
Presentazione Corso - Parte 1Presentazione Corso - Parte 1
Presentazione Corso - Parte 1
 
Presentazione wicket
Presentazione wicketPresentazione wicket
Presentazione wicket
 
Jquery mobile per App
Jquery mobile per AppJquery mobile per App
Jquery mobile per App
 
react-it.pdf
react-it.pdfreact-it.pdf
react-it.pdf
 
Angular Components e Pipe
Angular Components e PipeAngular Components e Pipe
Angular Components e Pipe
 
Laravel Framework PHP
Laravel Framework PHPLaravel Framework PHP
Laravel Framework PHP
 
Meetup ASP.NET Core Angular
Meetup ASP.NET Core AngularMeetup ASP.NET Core Angular
Meetup ASP.NET Core Angular
 
Giovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more thingsGiovambattista Fazioli, 10 more things
Giovambattista Fazioli, 10 more things
 
Guida introduttiva al codice HTML
Guida introduttiva al codice HTMLGuida introduttiva al codice HTML
Guida introduttiva al codice HTML
 
DDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continuaDDive - 8.5.2 Xpages - L'evoluzione continua
DDive - 8.5.2 Xpages - L'evoluzione continua
 
Xml annessi e connessi
Xml annessi e connessiXml annessi e connessi
Xml annessi e connessi
 
Introduzione ai css
Introduzione ai cssIntroduzione ai css
Introduzione ai css
 
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
Meetup DotNetCode Settembre 2018 - ASP.NET Core 2.1
 
DDive11 - xpages
DDive11 - xpagesDDive11 - xpages
DDive11 - xpages
 
Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesignerHtml e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
 
Html e Css - 2 | WebMaster & WebDesigner
 Html e Css - 2 | WebMaster & WebDesigner Html e Css - 2 | WebMaster & WebDesigner
Html e Css - 2 | WebMaster & WebDesigner
 
#dd12 grillo daniele_xpages_tips_tricks_rev2
#dd12 grillo daniele_xpages_tips_tricks_rev2#dd12 grillo daniele_xpages_tips_tricks_rev2
#dd12 grillo daniele_xpages_tips_tricks_rev2
 
Introduzione ad angular 7/8
Introduzione ad angular 7/8Introduzione ad angular 7/8
Introduzione ad angular 7/8
 
Dot net framework 2
Dot net framework 2Dot net framework 2
Dot net framework 2
 

LIT_1.pdf

  • 1. Libreria per la creazione di web components ELEONORA ROCCHI - 2022 -
  • 2. Lit si può facilmente aggiungere a progetti esistenti: i component Lit infatti funzionano con qualsiasi framework JavaScript, sistema di template server e CMS. ER 2022
  • 3. Un component Lit infatti può essere utilizzato direttamente nell’HTML, con le API DOM o nei template. La maggior parte dei framework JavaScript ha un ottimo supporto per i Web component e Lit: è su ff iciente importare la de f inizione dell'elemento ed utilizzare i nomi dei tag dell'elemento nei modelli. ER 2022
  • 4. Come aggiungere Lit ad un progetto esistente ER 2022
  • 5. Per prima cosa, si installa il pacchetto Lit da riga di comando, con npm ER 2022
  • 6. In qualsiasi cartella di progetto si può creare un nuovo elemento, utilizzando JSX ER 2022
  • 7. Cos’è JSX JavaScript Syntax Extension ER 2022
  • 8. JSX è un linguaggio utilizzato per la creazione di modelli. Si tratta di un’estensione della sintassi JavaScript. ER 2022
  • 10. Un componente Lit è un pezzo riutilizzabile dell'interfaccia utente. È una sorta di contenitore, con uno stato, che visualizza un'interfaccia utente in base al suo stato. Può reagire all'input dell'utente, attivare eventi, qualsiasi ci si può aspettare da un componente dell'interfaccia utente. Un componente Lit è un elemento HTML, quindi ha tutte le API degli elementi standard. ER 2022
  • 12. ER 2022 Come de f inire un web component con Lit
  • 13. Si crea una classe che estende LitElement e la si registra con il browser: ER 2022 In TS, il decoratore @customElement è un'abbreviazione per chiamare customElements.de f ine, che registra una classe di elementi personalizzati con il browser e la associa a un nome di elemento (in questo caso, simple-greeting). Altrimenti si può usare JS:
  • 14. De f inendo un componente Lit, si de f inisce un elemento HTML personalizzato; si può usare il nuovo elemento come qualsiasi elemento HTML: ER 2022
  • 15. La classe base LitElement è una sotto-classe di HTMLElement, perciò un componente Lit eredita tutte le proprietà dei metodi standard di HTMLElement. ER 2022
  • 16. In particolare, LitElement eredita da ReactiveElement, che implementa proprietà reattive, e a sua volta eredita da HTMLElement. ER 2022
  • 17. TypeScript deduce la classe di un elemento HTML restituito da alcune API DOM in base al nome del tag. Sappiamo ad esempio che document.createElement('img') restituisce un'istanza HTMLImageElement con una proprietà src di tipo string. Gli elementi personalizzati possono ottenere lo stesso trattamento aggiungendo la mappatura con HTMLElementTagNameMap. ER 2022
  • 18. ER 2022 In questo modo, il codice seguente esegue correttamente i controlli di tipo: Conviene aggiungere una voce HTMLElementTagNameMap a tutti gli elementi creati in TypeScript e pubblicare i tipi di .d.ts nel pacchetto npm.