SlideShare a Scribd company logo
1 of 12
Download to read offline
Libreria per la creazione di web components
ELEONORA ROCCHI


- 2022 -
I componenti Lit ricevono input e memorizzano uno stato.


Le proprietà reattive sono proprietà che possono attivare il ciclo di
aggiornamento reattivo quando vengono modi
f
icate, ri-eseguendo il
rendering del componente e possono, facoltativamente, essere lette o scritte
negli attributi.
ER 2022
Lit gestisce


➡ Aggiornamenti reattivi: Lit genera una coppia getter/setter per ogni proprietà
reattiva. Quando una proprietà reattiva cambia, il componente piani
f
ica un
aggiornamento.


➡ Gestione degli attributi: Per impostazione prede
f
inita, Lit imposta un attributo
osservato corrispondente alla proprietà e aggiorna la proprietà quando l'attributo
cambia. I valori delle proprietà possono anche, facoltativamente, essere ri
f
lessi
nell'attributo.


➡ Proprietà di superclasse: Lit applica automaticamente le opzioni di proprietà
dichiarate da una superclasse. Non è necessario dichiarare nuovamente le proprietà
a meno che non si desideri modi
f
icare le opzioni.


➡ Aggiornamento dell’elemento: Se un componente Lit viene de
f
inito dopo che
l'elemento è già nel DOM, Lit gestisce la logica di aggiornamento, assicurando che
qualsiasi proprietà impostata su un elemento prima che fosse aggiornato attivi gli
e
ff
etti collaterali reattivi corretti quando l'elemento viene aggiornato.
ER 2022
Le proprietà pubbliche fanno parte dell'API pubblica del componente. In
particolare le proprietà reattive pubbliche, dovrebbero essere trattate come
input.


Il componente non dovrebbe modi
f
icare le proprie proprietà pubbliche, se
non in risposta all'input dell'utente.


Lit supporta anche lo stato reattivo interno, che riferisce a proprietà reattive
che non fanno parte dell'API del componente. Queste proprietà non hanno
un attributo corrispondente e sono in genere contrassegnate come protette
o private in TypeScript.


ER 2022
Il componente è in grado di manipolare il proprio stato reattivo interno.


In alcuni casi, lo stato reattivo interno può essere inizializzato da proprietà
pubbliche, ad esempio se c'è una costosa trasformazione tra la proprietà
visibile dall'utente e lo stato interno.


Come per le proprietà reattive pubbliche, l'aggiornamento dello stato
reattivo interno attiva un ciclo di aggiornamento.
ER 2022
Le proprietà reattive pubbliche si dichiarano utilizzando il decoratore
@property, eventualmente con una serie di opzioni.
ER 2022
Oppure una proprietà statica:


ER 2022
I campi di classe hanno un'interazione problematica con le proprietà reattive,
perché de
f
initi nell'istanza dell'elemento.


Le proprietà reattive sono de
f
inite come accessorie sul prototype
dell'elemento.


Secondo le regole di JavaScript, una proprietà di istanza ha la precedenza e
nasconde e
ff
icacemente una proprietà prototype.


Ciò signi
f
ica che le funzioni di accesso alle proprietà reattive non funzionano
quando vengono utilizzati i campi di classe.


Quando viene impostata una proprietà, l'elemento non si aggiorna.
ER 2022
In JavaScript non è necessario utilizzare i campi di classe quando si
dichiarano proprietà reattive. Invece, le proprietà devono essere inizializzate
nel costruttore dell’elemento.
ER 2022
In TypeScript, si possono utilizzare i campi di classe per dichiarare le
proprietà reattive purché utilizzi uno di questi modelli:


➡Con impostazione useDe
f
ineForClassFields nel tscon
f
ig su false.


➡Aggiungendo la parola chiave declare sul campo e inserendo
l'inizializzatore del campo nel costruttore.


Quando si compila JavaScript con Babel, è possibile utilizzare i campi di
classe per dichiarare proprietà reattive purché si imposti setPublicClassFields
su true nella con
f
igurazione dei presupposti del proprio babelrc.
ER 2022
L'oggetto opzioni può avere le seguenti proprietà:


➡ attribute: se la proprietà è associata a un attributo o un nome personalizzato per
l'attributo associato. Prede
f
inito: true. Se l'attributo è false, le opzioni converter,
re
f
lect e type vengono ignorate.


➡ converter: convertitore personalizzato per la conversione tra proprietà e
attributi. Se non speci
f
icato, utilizzare il convertitore di attributi prede
f
inito.


➡ hasChanged: funzione chiamata ogni volta che la proprietà è impostata per
determinare se è stata modi
f
icata e dovrebbe attivare un aggiornamento. Se non
speci
f
icato, LitElement utilizza un controllo rigoroso della disuguaglianza
(newValue !== oldValue) per determinare se il valore della proprietà è cambiato.


➡ noAccessor: impostata su true per evitare di generare le funzioni di accesso alle
proprietà prede
f
inite. Questa opzione è raramente necessaria. Prede
f
inito: false.
ER 2022
➡ re
f
lect: se il valore della proprietà viene ri
f
lesso nell'attributo associato. Prede
f
inito: false.


➡ state: da impostare su true per dichiarare la proprietà come stato reattivo interno. Lo
stato reattivo interno attiva gli aggiornamenti come le proprietà reattive pubbliche, ma Lit
non genera un attributo per esso e gli utenti non devono accedervi dall'esterno del
componente. Equivalente all'utilizzo del decoratore @state. Prede
f
inito: false.


➡ type: Quando si converte un attributo con valori di stringa in una proprietà, il
convertitore di attributi prede
f
inito di Lit analizzerà la stringa nel tipo speci
f
icato e
viceversa quando ri
f
lette una proprietà in un attributo. Se il converter è impostato, questo
campo viene passato al converter. Se il tipo non è speci
f
icato, il converter prede
f
inito lo
considera come tipo: String. Quando si utilizza TypeScript, dovrebbe generalmente
corrispondere al tipo TypeScript dichiarato per il campo. Tuttavia, l'opzione type viene
utilizzata dal runtime di Lit per la serializzazione/deserializzazione delle stringhe e non
deve essere confusa con un meccanismo di controllo del tipo.


Omettere l'oggetto opzioni o speci
f
icare un oggetto opzioni vuoto equivale a speci
f
icare il
valore prede
f
inito per tutte le opzioni.
ER 2022

More Related Content

Featured

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 

Featured (20)

Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 

LIT_3.pdf

  • 1. Libreria per la creazione di web components ELEONORA ROCCHI - 2022 -
  • 2. I componenti Lit ricevono input e memorizzano uno stato. Le proprietà reattive sono proprietà che possono attivare il ciclo di aggiornamento reattivo quando vengono modi f icate, ri-eseguendo il rendering del componente e possono, facoltativamente, essere lette o scritte negli attributi. ER 2022
  • 3. Lit gestisce ➡ Aggiornamenti reattivi: Lit genera una coppia getter/setter per ogni proprietà reattiva. Quando una proprietà reattiva cambia, il componente piani f ica un aggiornamento. ➡ Gestione degli attributi: Per impostazione prede f inita, Lit imposta un attributo osservato corrispondente alla proprietà e aggiorna la proprietà quando l'attributo cambia. I valori delle proprietà possono anche, facoltativamente, essere ri f lessi nell'attributo. ➡ Proprietà di superclasse: Lit applica automaticamente le opzioni di proprietà dichiarate da una superclasse. Non è necessario dichiarare nuovamente le proprietà a meno che non si desideri modi f icare le opzioni. ➡ Aggiornamento dell’elemento: Se un componente Lit viene de f inito dopo che l'elemento è già nel DOM, Lit gestisce la logica di aggiornamento, assicurando che qualsiasi proprietà impostata su un elemento prima che fosse aggiornato attivi gli e ff etti collaterali reattivi corretti quando l'elemento viene aggiornato. ER 2022
  • 4. Le proprietà pubbliche fanno parte dell'API pubblica del componente. In particolare le proprietà reattive pubbliche, dovrebbero essere trattate come input. Il componente non dovrebbe modi f icare le proprie proprietà pubbliche, se non in risposta all'input dell'utente. Lit supporta anche lo stato reattivo interno, che riferisce a proprietà reattive che non fanno parte dell'API del componente. Queste proprietà non hanno un attributo corrispondente e sono in genere contrassegnate come protette o private in TypeScript. ER 2022
  • 5. Il componente è in grado di manipolare il proprio stato reattivo interno. In alcuni casi, lo stato reattivo interno può essere inizializzato da proprietà pubbliche, ad esempio se c'è una costosa trasformazione tra la proprietà visibile dall'utente e lo stato interno. Come per le proprietà reattive pubbliche, l'aggiornamento dello stato reattivo interno attiva un ciclo di aggiornamento. ER 2022
  • 6. Le proprietà reattive pubbliche si dichiarano utilizzando il decoratore @property, eventualmente con una serie di opzioni. ER 2022
  • 7. Oppure una proprietà statica: ER 2022
  • 8. I campi di classe hanno un'interazione problematica con le proprietà reattive, perché de f initi nell'istanza dell'elemento. Le proprietà reattive sono de f inite come accessorie sul prototype dell'elemento. Secondo le regole di JavaScript, una proprietà di istanza ha la precedenza e nasconde e ff icacemente una proprietà prototype. Ciò signi f ica che le funzioni di accesso alle proprietà reattive non funzionano quando vengono utilizzati i campi di classe. Quando viene impostata una proprietà, l'elemento non si aggiorna. ER 2022
  • 9. In JavaScript non è necessario utilizzare i campi di classe quando si dichiarano proprietà reattive. Invece, le proprietà devono essere inizializzate nel costruttore dell’elemento. ER 2022
  • 10. In TypeScript, si possono utilizzare i campi di classe per dichiarare le proprietà reattive purché utilizzi uno di questi modelli: ➡Con impostazione useDe f ineForClassFields nel tscon f ig su false. ➡Aggiungendo la parola chiave declare sul campo e inserendo l'inizializzatore del campo nel costruttore. Quando si compila JavaScript con Babel, è possibile utilizzare i campi di classe per dichiarare proprietà reattive purché si imposti setPublicClassFields su true nella con f igurazione dei presupposti del proprio babelrc. ER 2022
  • 11. L'oggetto opzioni può avere le seguenti proprietà: ➡ attribute: se la proprietà è associata a un attributo o un nome personalizzato per l'attributo associato. Prede f inito: true. Se l'attributo è false, le opzioni converter, re f lect e type vengono ignorate. ➡ converter: convertitore personalizzato per la conversione tra proprietà e attributi. Se non speci f icato, utilizzare il convertitore di attributi prede f inito. ➡ hasChanged: funzione chiamata ogni volta che la proprietà è impostata per determinare se è stata modi f icata e dovrebbe attivare un aggiornamento. Se non speci f icato, LitElement utilizza un controllo rigoroso della disuguaglianza (newValue !== oldValue) per determinare se il valore della proprietà è cambiato. ➡ noAccessor: impostata su true per evitare di generare le funzioni di accesso alle proprietà prede f inite. Questa opzione è raramente necessaria. Prede f inito: false. ER 2022
  • 12. ➡ re f lect: se il valore della proprietà viene ri f lesso nell'attributo associato. Prede f inito: false. ➡ state: da impostare su true per dichiarare la proprietà come stato reattivo interno. Lo stato reattivo interno attiva gli aggiornamenti come le proprietà reattive pubbliche, ma Lit non genera un attributo per esso e gli utenti non devono accedervi dall'esterno del componente. Equivalente all'utilizzo del decoratore @state. Prede f inito: false. ➡ type: Quando si converte un attributo con valori di stringa in una proprietà, il convertitore di attributi prede f inito di Lit analizzerà la stringa nel tipo speci f icato e viceversa quando ri f lette una proprietà in un attributo. Se il converter è impostato, questo campo viene passato al converter. Se il tipo non è speci f icato, il converter prede f inito lo considera come tipo: String. Quando si utilizza TypeScript, dovrebbe generalmente corrispondere al tipo TypeScript dichiarato per il campo. Tuttavia, l'opzione type viene utilizzata dal runtime di Lit per la serializzazione/deserializzazione delle stringhe e non deve essere confusa con un meccanismo di controllo del tipo. Omettere l'oggetto opzioni o speci f icare un oggetto opzioni vuoto equivale a speci f icare il valore prede f inito per tutte le opzioni. ER 2022