In questo talk vedremo come creare componenti custom in Angular con un alto impatto visivo, grazie a SVG e CANVAS che permettono di realizzare icone, infografiche, mappe e giochi. Scopriremo come sfruttare al meglio queste tecnologie grazie ad Angular e directive, viewChild e altro. Chiuderemo il talk dando "vita" a questi componenti grazie ad animazioni CSS, Angular e GreenSock.
3. Angular compila il nostro codice
Tutto quello che scriviamo nella nostra applicazione
Angular (componenti, logica e stili) viene ‘compilato’
in codice Javascript.
7. Angular needs to know is SVG
<svg:rect x="0" y="0" width="100" height="100"/>
“An SVG snippet template needs an svg: prefix on its root element to disambiguate the SVG
element from an HTML component.”
Fonte
16. HTML attribute vs. DOM property
❖ Alcuni attributi HTML hanno un mapping 1: 1 alle proprietà
➢ Ad esempio id
❖ Alcuni attributi HTML non hanno proprietà corrispondenti
➢ Ad esempio colspan e tutti gli attributi svg
❖ Alcune proprietà DOM non hanno attributi corrispondenti
➢ Ad esempio textContent
❖ Molti attributi HTML sembrano mappare alle proprietà ... ma non nel modo in cui si potrebbe pensare!
Gli attributi inizializzano le proprietà del DOM, queste possono cambiare; i valori degli attributi no.
Fonte
17. Un mondo senza attributi
In Angular l'unico scopo degli attributi è quello di inizializzare lo stato degli elementi e direttive, una volta
compilati gli attributi spariscono!
Fonte
Fonte
È necessario utilizzare il binding dell'attributo quando non esiste alcuna proprietà dell'elemento da associare.
21. Suddivisione in componenti
<svg viewBox="0 0 250 250">
<my-part-left></my-part-left>
<my-part-right></my-part-right>
</svg>
Non viene renderizzato!
35. SVG usa il modello “retained”
Fonte
È un modello dichiarativo. L’applicazione costruisce la scena utilizzando elementi
grafici (linee, forme) della libreria grafica che si occupa di creare il modello della scena
e inviare i comandi di disegno.
36. Canvas usa il modello ‘immediate’
Fonte
È un modello procedurale. L’applicazione invia direttamente i comandi di disegno e
deve tenere traccia del modello della scena
49. Leonardo Buscemi
Software Developer presso
https://www.linkedin.com/in/leonardobuscemi/
https://www.facebook.com/leonardo.buscemi
https://twitter.com/leonardobuscemi
GRAZIE
Editor's Notes
Spiegare icona Angular in alto
Il link punta alla pagina di Mozilla
Spiegare subito perchè
Adesso vogliamo rendere dinamica una parte del nostro componente