Nel mondo dello sviluppo web moderno, recuperare e gestire dati è una parte essenziale del processo di creazione di applicazioni dinamiche e interattive.
In questo talk esploreremo come React Query, una libreria sviluppata da TanStack, possa rivoluzionare il modo in cui affrontiamo questa sfida nelle nostre applicazioni React.
Event link: https://www.youtube.com/watch?v=s8aFrVdr0ak
Report
Share
Report
Share
1 of 27
Download to read offline
More Related Content
Similar to React Query - gestione efficiente dei dati nelle app React - Updated (Eduard Capanu).pdf
Sviluppo guidato dai tests in ambiente WordPress. La prima parte della frase fa aggrottare la fronte in condizioni normali: in ambiente WordPress assume un che di mistico ed irraggiungibile. Non è così.
Test, Tools and Tips per tester e non.
Consigli su come affrontare il testing e come comportarsi con applicazioni di tipo web, con scenari e possibili soluzioni con vari tools a disposizione
Lo sai che si può fare DDD in Javascript grazie a Typescript? Visual Studio e...Marco Parenzan
Scrivere Object Oriented è ora possibile anche in Javascript con Typescript. E in generale bisogna concentrarsi nello scrivere codice di valore e non "autogenerato" dallo scaffolding. Capiamo come si fa riscrivendo un vecchio gioco della Licasfilm!
Lo Unit Test è importante per testare gli aspetti di base di un qualsiasi applicativo PHP.
Con il framework PHPUnit noi possiamo effettuare test di unità senza problemi e senza notevoli sforzi.
Loosely Coupled Complexity - Unleash the power of your domain modelFrancesca1980
Common software architectures are full of well-established assumptions. But some of them are flawed, no longer valid or relevant. Changing the rules of the game using DDD, CQRS and Event Sourcing can lead to systems which are more scalable, maintainable and performing. And which are fun to code as well.
Traduzione italiana delle FAQ di Framakey WebApps: applicazioni web portabili che includono anche un web server. Tutte le applicazioni sono open source.
Versione originale francese: http://framakey.org/WebApp/FAQ
Come aggiornare i dati di una tabella relazionale prima di chiavi straniere. Le quattro operazioni fondamentali. CRUD. Visualizzare una lista di righe della tabella relazionale, inserire una nuova riga, ricercare un record conoscendo la sua chiave primaria. Modificare e annullare
Similar to React Query - gestione efficiente dei dati nelle app React - Updated (Eduard Capanu).pdf (20)
Beyond the Cache sfruttare appieno le potenzialità dei Service Worker (Eduar...EduardCapanu
I Service Worker di JavaScript aprono le porte a un mondo di possibilità, che non si limitano alla semplice creazione di applicazioni web offline: essi, infatti, permettono non solo di migliorare le prestazioni dell'applicazione attraverso la memorizzazione nella cache, ma offrono una gamma incredibile di funzionalità avanzate.
In questo talk scopriremo come sfruttare al massimo le capacità dei Service Worker: esploreremo aspetti come il pre-fetching intelligente delle risorse, la gestione di fallback in caso di connessione limitata e l'implementazione di strategie di caching personalizzate. Le combinazioni di queste tecniche offrono un vasto spettro di opportunità strategiche, permettendoti di creare un'esperienza di navigazione straordinaria.
Event link: https://thecmmbay.com/eventi/service-worker-in-javascript-le-potenzialita-oltre-la-cache-rx70p9j40
La guida ai lifecycle dei componenti in React (Eduard Capanu).pptxEduardCapanu
In questo talk, ci immergeremo nel complesso mondo del Ciclo di Vita dei Componenti in React e sveleremo le peculiarità nascoste di uno degli hook più potenti e utilizzati per gestirli efficaremente: useEffect.
Sebbene possa sembrare un argomento familiare, la realtà è che circa il 90% dei bug in React nasce dalla mancanza di comprensione di questi piccoli dettagli.
Esploreremo le varie fasi di un componente, dal Mounting all'Update, fino alla sua Dismissione, mettendo in luce come 'useEffect' sia una risorsa fondamentale per gestire side effects e richieste esterne, ma anche come non usarlo per evitare future problematiche.
Event link: https://thecmmbay.com/eventi/migliora-il-ciclo-di-vita-dei-tuoi-componenti-react-4wep9vjlv
Power Apps Introduction (Eduard Capanu).pptxEduardCapanu
This slide are made for an event with Fabio Biondi where we are explaining the basics of the Power Platform services.
Event link: https://www.youtube.com/watch?v=y2PGikFu96g&t=3s
Come pensare in TypeScript (Part 2) (Eduard Capanu).pptxEduardCapanu
In questo talk, dopo aver visto i fondamenti della sintassi e l'approccio di Typescript, mostreremo come questo linguaggio di programmazione stia cambiando il modo in cui gli sviluppatori creano applicazioni web.
In particolare, impareremo a sfruttare funzionalità avanzate come:
I Generics
Gli Intersection Types
I Type Guards
Che tu sia un professionista del settore o un appassionato alle prime armi, potrai acquisire le conoscenze necessarie per affrontare le sfide del mondo digitale in modo efficace ed efficiente.
Event link: https://thecmmbay.com/eventi/minicorso-pensare-in-typescript-aspetti-avanzati-kzn745wj8x1
Come pensare in TypeScript (Part 1) (Eduard Capanu).pptxEduardCapanu
Questo minicorso è dedicato a Typescript, un linguaggio di programmazione open source creato da Microsoft, a partire dal linguaggio JavaScript.
Typescript, in realtà, non è una semplice estensione di JavaScript, ma essendo, a differenza di quest’ultimo, un linguaggio tipizzato, richiede non soltanto l’apprendimento di nuovi costrutti sintattici, ma anche un profondo cambiamento di approccio alla programmazione.
I vantaggi derivanti dal suo utilizzo sono una riduzione dei possibili errori, grazie ai controlli statici in fase di compilazione, una migliore e più solida struttura del codice e una maggiore flessibilità nelle attività di aggiornamento e refactoring.
In questo minicorso, oltre ad introdurre la sintassi di Typescript, con i tipi di dato, le interfacce e le classi, ne presenteremo anche la “filosofia”. Saremo così in grado di cambiare il nostro mindset, per poter passare dalla scrittura di codice plain, senza tipizzazione, ad una metodologia che consenta di scrivere codice solido e scalabile ed in grado di ottenere migliori prestazioni per le nostre app.
Event link: https://thecmmbay.com/eventi/minicorso-pensare-in-typescript-dalla-teoria-alla-pratica-9l0750wjqn2
Impara React sfruttando le tecnologie più recenti (Eduard Capanu).pptxEduardCapanu
React evolve velocemente con strumenti come Vite.js, Remix, e Next.js, richiedendo aggiornamenti continui delle competenze per gestire nuovi progetti con successo.
Che tu abbia già esperienza con React o che sia alle prime armi, questo talk ti offrirà una nuova prospettiva sulle ultime tendenze di questo framework e ti mostrerà le best practice per la creazione e la configurazione di un progetto.
Esploreremo le ultime innovazioni di React e scopriremo come sfruttare efficacemente le nuove funzionalità per lanciare un nuovo progetto senza intoppi, dalla scelta del framework e della tecnologia, alla configurazione iniziale più adatta.
Vedremo tutti i passaggi chiave per realizzare un progetto React in modo efficiente e impareremo, tra le altre cose, che non sempre ‘create-react-app’ è l’opzione migliore per iniziare un nuovo progetto.
Event link: https://thecmmbay.com/eventi/impara-react-sfruttando-le-tecnologie-piu-recenti-r97r9y7l6
Summary of: “A Perspective Vision of Micro/Nano Systems and Technologies as E...francescoiancis
Presentazione tesi di laurea triennale in Ingegneria Elettronica e Informatica, curriculum Elettronica e IoT - Università degli Studi di Trieste
Fonte del lavoro: Jacopo Iannacci, “A Perspective Vision of Micro/Nano Systems and Technologies as Enablers of 6G, Super-IoT, and Tactile Internet”, in “Proceedings of the IEEE”, 111, 1 (January 2023), pp. 5-18
2. Eduard Andrei Capanu Microsoft 365 React JavaScript
Frontend Developer & Trainer
—
React - TypeScript - JavaScript
๏ Computer science lover & sviluppatore
software full-time
๏ Ho lavorato per 5 anni con tecnologie
Microsoft
๏ Appassionato di JavaScript & React
๏ Condividere e apprendere il piu’ possibile
3. Di cosa parleremo in questo talk?
Introduzione della libreria
Client VS Server State
React Query Examples
Features utili
Introduzione del software TanStack
Non si tratta solo di Data
Fetching
4. Introduzione del software TanStack
- Non è un framework o una libreria
- Si tratta di un set di tecnologie in grado di offrire
soluzioni e feature per lo sviluppo con React, Next.JS
e TypeScript
- Con il tempo si sono espansi offrendo i stessi servizi
anche per altre librerie / framework come Angular,
Svelte, Rue ecc.
5. Introduzione della libreria - Cos’è React Query?
“È una libreria per la gestione asincrona
dello stato applicativo”
- Spesso confuso con una libreria per il fetching dei dati
- Se usi un framework con delle soluzioni di fetching e mutazioni già esistenti, forse
non hai bisogno anche di React Query
- A primo impatto potrebbe non sembrare allettante, ma vediamo meglio i vantaggi che
ci porta
Perchè introdurre un’altra libreria per fare delle fetch?
Posso usare benissimo fetch + useEffect!
8. Introduzione della libreria - Perché dovresti averne bisogno?
- Persino la documentazione ufficiale di React consiglia di usare un’altra libreria o
framework per il data fetching
9. Il primo -> Race Condition
Lo stato cambia con ID -> 2
Viene effettuata una fetch per il
Todo con ID -> 1, che ci mette
troppo a rispondere
Il problema è che alla
fine la chiamata con
ID2 risponde per prima
e quella con ID1 per
ultima.
Quindi lo stato si
aggiorna con il risultato
della prima chiamata e
non dell’ultima.
Per cui mostriamo dati
sbagliati
1 Bug
10. Il primo -> Race Condition (Soluzione)
Viene eseguita quando il
‘todoId’ cambia
Se ‘todoId’ cambia, la if della fetch precedente
risulterà false e non andremo a settare i dati
1 Bug
11. I secondo -> Il Loading
2 Bug
Se vogliamo gestire il loading sulla nostra
chiamata dobbiamo creare un nuovo state
Implementarlo per gestire il loading ad
ogni chiamata
E pulirlo ogni volta che la fetch finisce
12. I terzo -> Lo stato vuoto
3 Bug
Se vogliamo avere evidenza della
differenza tra ‘non ho ancora dati’ e
‘non ho mai avuto dati’, dobbiamo
andare a settare lo state di React ad
undefined.
Cosi, nel caso la risposta ci torni un
obj / array vuoto, sapremo che è stata
la risposta a non tornarci risultati e
che ora lo stato è aggiornato con lo
stesso valore del server.
Stato undefined
13. I quarto -> Il reset dei Dati e degli Errori
4 Bug
- Lo stato che usiamo per i nostri dati e quello che usiamo per gli errori sono separati.
- Questo significa che se non facciamo manualmente dei RESET, possiamo andare nella casistica
in cui i nostri dati si aggiornano ma rimaniamo con gli errori precedenti mostrati a UI.
Dipende da come usiamo l’errore nel JSX, se
controlliamo ‘error’ per primo avremo un problema
14. 4 Bug
I quarto -> Il reset dei Dati e degli Errori
Puliamo gli errori in fase di set dei nuovi dati
Puliamo i dati in fase di set degli errori
15. I quinto -> Doppie chiamate in StrictMode
5 Bug
- Non un bug vero è proprio ma decisamente una cosa fastidiosa
- Il 90% di noi penso faccia uso di <React.StrictMode>
- Quando usato, i nostri effect vengono lanciati 2 volte per ‘aiutarci’ a trovare
bug come ad esempio la mancanza di funzioni di cleanup negli effect
16. Codice finale di una ‘semplice’ fetch
Ma non doveva essere
semplice?
18. Quello che React Query gestisce per noi
- Hai ragione a dire che non vuoi React Query per una cosa come fetchare i dati, perché alla
fine anche con essa il codice di fetch lo devi scrivere comunque.
- Ma è molto probabile che ti servirà per rendere il tuo stato prevedibile e per la gestione
asincrona degli eventi che vanno ad aggiornare lo stato.
Prima di vedere il codice con React Query,
aggiungiamo queste 2 righe per creare il
contesto in cui la libreria possa agire
19. Quello che React Query gestisce per noi
Solamente 10 righe di codice per gestire il tutto.
PS: Qui ci sta anche un BONUS -> la gestione
della throw della fetch
20. Quello che React Query gestisce per noi
- Non abbiamo più problemi di Race Condition
- Abbiamo il loading, gli data e gli errori inclusi, senza gestioni multiple
- Gli stati vuoti vengono gestiti automaticamente e possono essere sovrascritti con
‘placeholderData’ se serve
- Non si avranno stati disallineati tra i data e gli errori, almeno che non lo vogliamo
- Le fetch multiple sono deduplicate, persino quelle in StrictMode
21. Client VS Server state
- Possiamo pensare al Client State come a tutte quelle operazioni sincrone che andiamo a
gestire o manipolare
- Solo noi possiamo cambiarlo
- Viene distrutto quando il browser cambia
- Disponibile in modo istantaneo
- Sempre aggiornato
- Ci riferiamo al Server State quando abbiamo a che fare con dati che non sono nostri,
come ad esempio quelli ricevuti da chiamate POST
- Vediamo solo una parte dei dati e non sappiamo mai se sono aggiornati al 100%
- Controllati da altri servizi / utenti
- Sono condivisi per più sessioni di browser
- Sono asincroni, ci serve del tempo per prendere i dati dal server e riportarli sul
client
22. The Story of React Query
The Story of React Query: https:/
/www.youtube.com/watch?v=OrliU0e09io
26. https:/
/eduardcapanu.gumroad.com/l/reacttipsandtriks
๏ react mysteries like the double render explained
๏ features explained (like portals, lazy loading ecc.)
๏ how the life cycle works
๏ common mistakes
๏ what DevTools can do
๏ library under the hood information (prop drilling, high-order
components, react canary, Virtual DOM ecc.)
๏ React insights about the version 18 & 19
๏ some tips that can help you during the interview questions
30+ Free React Tips & Tricks
27. React Query: gestione efficiente
dei dati nelle app React
Ci vediamo al prossimo talk ☺
@capanu2
@eduardcapanu
https:/
/eduardcapanu.com
@eduard_capanu_dev