L01 - Introduzione a React, Vite e Node.js | Setup Ambiente - Prof. Giagnotti
PROF GIAGNOTTI · TORNA A → · GUIDE
📘 GUIDE · React + Vite · Lezione 1 di 10
Docente: Prof. Giagnotti · Sviluppo Web Moderno

Lezione 1 — Introduzione a React, Vite e Node.js: Setup Ambiente

Perché lo stack Node + React + Vite domina il mercato, come dialogano frontend e backend e cosa costruiremo nelle prossime 9 lezioni. Prima lezione: zero codice applicativo, solo strumenti e primo progetto funzionante.

⏱ ~15 min lettura 🎯 Livello: Principiante 💻 Prerequisiti: HTML, CSS, JS base ⚗️ Lab Pratico — lab-01-setup-ambiente.md ↗ 🧩 Serie: DevNotes
✓Capire perché Node.js, React e Vite risolvono problemi reali dello sviluppo moderno
✓Visualizzare l'architettura frontend (5173) ↔ backend (3001) via REST/JSON
✓Installare Node.js, configurare VS Code e creare il primo progetto Vite + React
✓Comprendere la struttura cartelle generata da Vite
✓Conoscere il percorso completo di 10 lezioni e il progetto finale DevNotes

1. Perché questo stack? Il problema che ogni strumento risolve

Se hai già scritto qualche riga di HTML e CSS e vuoi fare il salto verso lo sviluppo web moderno, sei nel posto giusto. In questa serie costruiamo da zero un'applicazione completa con interfaccia interattiva, routing, backend e deploy online usando Node.js + React + Vite, tutto dentro Visual Studio Code.

Non è un tutorial "copia-incolla". Ogni lezione spiega perché si fa così, non solo come. Alla fine avrai un'app reale nel tuo portfolio GitHub e una comprensione solida dell'intero flusso frontend–backend.

📌 Definizione da ricordare

Node.js è un runtime JavaScript asincrono e basato su eventi, progettato per costruire applicazioni di rete scalabili. Usa un modello non-bloccante a I/O: invece di bloccare il thread in attesa di disco o rete, continua ad eseguire altro codice e riceve una notifica quando l'operazione è pronta.

Il problema che Node.js risolve

JavaScript nasce nel 1995 per il browser. Per decenni, per un backend dovevi imparare un secondo linguaggio: PHP, Python, Ruby. Nel 2009 Ryan Dahl presenta Node.js costruito sul motore V8 di Chrome. Risultato: con un solo linguaggio scrivi sia frontend che backend, stessa sintassi, stesso ecosistema npm.

💬 Tip del docente

Quando spiego Node.js in classe faccio sempre questo controllo: apri il terminale e scrivi node --version e npm --version. Se entrambi rispondono, sei già a metà strada. Se npm manca, hai installato Node in modo incompleto. Reinstalla dal sito ufficiale, non da store di terze parti.

Il problema che React risolve

Costruire interfacce con JS puro diventa un labirinto di document.getElementById e listener annidati quando lo stato cresce. Facebook nel 2013 rilascia React: interfaccia dichiarativa. Invece di dire "aggiorna questo DOM", dici "ecco com'è l'UI quando i dati sono così" — React fa reconciliation via Virtual DOM.

01 · IMPERATIVO

JS puro

Devi gestire a mano ogni aggiornamento del DOM. Funziona per 2 bottoni, diventa ingestibile per 200 stati.

02 · DICHIARATIVO

React

Descrivi lo stato con useState. React aggiorna il DOM in modo ottimale. Codice prevedibile e testabile.

03 · COMPONENTI

Riusabilità

Un componente = funzione + JSX + stato. Lo riusi ovunque. È il LEGO dell'interfaccia moderna.

JSX · Confronto imperativo vs dichiarativo
// Imperativo (vanilla) const btn = document.getElementById('btn') const count = document.getElementById('count') let n = 0 btn.addEventListener('click', () => { n++ count.textContent = n // aggiorna manualmente })// Dichiarativo (React) function Counter() { const [n, setN] = useState(0) return ( <button onClick={() => setN(n + 1)}> Cliccato {n} volte </button> ) }

Il problema che Vite risolve

React usa JSX che i browser non capiscono. Serve un build tool. Webpack è potente ma lento all'avvio. Nel 2021 Evan You crea Vite (dal francese "veloce"): sfrutta ES Modules nativi, serve file on-demand, HMR istantaneo senza ricaricare la pagina.

⚠️ Errore comune visto in laboratorio

Confondere Vite con un framework. Vite NON è React. Vite è il build tool + dev server che compila JSX e serve il progetto. Puoi usarlo con React, Vue, Svelte. React è la libreria UI che gira dentro Vite.

StrumentoRuoloProblema che risolveAlternative
Node.jsRuntime server + gestore pacchetti npmEseguire JS fuori dal browser; gestire dipendenzeDeno, Bun
ReactLibreria UI a componentiSincronizzazione stato–DOM, riusabilitàVue, Svelte, Angular
ViteBuild tool e dev server ultra-veloceCompilazione JSX, HMR, bundling produzioneWebpack, Parcel
VS CodeIDE / EditorEditing, debug, Git, estensioni web devWebStorm, Zed

2. Come funzionano insieme — architettura frontend ↔ backend

Durante lo sviluppo Vite gira su localhost:5173 e serve il frontend React. Express gira su localhost:3001 e fornisce API REST. I due parlano via HTTP/JSON. In produzione frontend su Vercel (CDN) e backend su Render (cloud).

FRONTEND (Browser) :5173 ⚛️ React — componenti UI 🔀 React Router — navigazione ⚡ Vite — dev server + build HTTP / REST ⇄ JSON BACKEND (Server) :3001 🟢 Node.js — runtime 🚂 Express — framework HTTP 🗄️ JSON / SQLite — dati

VS Code · npm · Deploy su Vercel + Render — Architettura che costruiremo

💬 Tip del docente — porte e CORS

In laboratorio vedrai subito l'errore CORS quando frontend e backend girano su porte diverse. È normale: il browser blocca richieste cross-origin. Lo risolveremo nella Lezione 8 con il proxy di Vite e il middleware cors in Express. Per ora ricordalo: due porte = due server = serve configurazione.

3. Il progetto che costruiremo: DevNotes

Attraverso le 10 lezioni costruiamo DevNotes — app per gestire appunti tecnici (snippet, link, note). Semplice da imparare, completa da toccare tutto lo stack.

📝 CRUD

Crea, leggi, aggiorna, elimina

Note con titolo, contenuto e tag. Operazioni base di qualunque app.

🔍 RICERCA

Filtri e ricerca

Filtro per tag e ricerca per titolo. Stato UI con hooks React.

🔐 AUTH JWT

Login e rotte protette

Registrazione, login, protected routes, localStorage, flow stateless.

🎯 Esempio in classe

DevNotes è come il tuo quaderno di Sistemi e Reti, ma digitale: ogni nota è un comando Linux, una configurazione, un pezzo di codice che vuoi ritrovare al volo. Alla fine avrai un link pubblico da mettere nel CV: molto più efficace di uno screenshot.

4. Il percorso completo — 10 lezioni

#TitoloArgomenti chiaveLab GitHub
L01Setup ambiente ← sei quiNode.js, npm, Vite, VSCode + estensioni, primo progettolab-01
L02Componenti e JSXStruttura Vite, JSX, componenti funzionali, propslab-02
L03Stato e interattivitàuseState, eventi, useEffect, ciclo di vitalab-03
L04Stile: CSS Modules e TailwindCSS Modules, Tailwind in Vite, utility classeslab-04
L05Routing con React Router v6SPA vs MPA, Route/Link/Outlet, useParamslab-05
L06Lavorare con le API RESTfetch, async/await, custom hook useFetchlab-06
L07Backend con ExpressServer Node, route CRUD, middleware, CORSlab-07
L08Connettere frontend e backendProxy Vite, chiamate locali, POST, errorilab-08
L09Autenticazione JWTjsonwebtoken, bcrypt, protected routeslab-09
L10Deploy: Vercel + RenderBuild produzione, env vars, CI/CDlab-10

5. Setup ambiente: cosa facciamo in questa lezione

In questa prima lezione non scriviamo ancora codice applicativo. Installiamo strumenti, configuriamo l'editor e creiamo il primo progetto Vite + React per capire cosa genera di default e come funziona il dev server.

  • Node.js installato e funzionante (con npm) — verifica con node -v
  • VS Code configurato con estensioni: ES7+ React, Prettier, ESLint
  • Primo progetto Vite + React in esecuzione su localhost:5173
  • Comprensione della struttura cartelle: src/, public/, vite.config.js
⚠️ Errore comune — Node non trovato

Su Windows se dopo l'installazione node -v dà "comando non riconosciuto", chiudi e riapri il terminale (o VS Code). L'installer aggiunge Node al PATH solo nei nuovi terminali. Su macOS con Homebrew, assicurati che /opt/homebrew/bin sia nel PATH.

TERMINALE · Comandi iniziali
# verifica installazione node -v npm -v# crea progetto (Vite ufficiale) npm create vite@latest devnotes -- --template react# entra e installa cd devnotes npm install# avvia dev server npm run dev# → Local: http://localhost:5173/

6. Come seguire al meglio la serie

Ogni articolo è accompagnato da un file .md su GitHub con istruzioni pratiche passo-passo. Leggi prima l'articolo per capire il "perché", poi apri il file .md per il "come". I due si completano.

🎯 Metodo di studio che funziona

1. Leggi la lezione senza copiare codice. 2. Apri il lab su GitHub e rifai i passaggi a mano. 3. Rompi qualcosa di proposito (cambia una porta, togli un import) e leggi l'errore. Capire l'errore è metà del lavoro di uno sviluppatore.

7. Verifica / Esercizio pratico

🔬 Attività — Lab 01

Apri il lab pratico dal meta-pill giallo in alto. Esegui tutti i passaggi e rispondi:

  1. Cosa contiene package.json dopo npm install? Qual è la differenza tra dependencies e devDependencies?
  2. Perché Vite mostra "HMR" quando salvi un file? Cosa succede senza ricaricare la pagina?
  3. Modifica App.jsx per mostrare il tuo nome e un contatore che parte da 10. Fai screenshot del browser.
✅ Soluzione ragionata

1. package.json lista dipendenze. dependencies = codice che serve in produzione (react, react-dom). devDependencies = strumenti solo per sviluppo (vite, @vitejs/plugin-react). 2. HMR = Hot Module Replacement: Vite sostituisce solo il modulo modificato, mantiene lo stato degli altri. 3. useState(10) e JSX con {nome} — vedi lab-02 per soluzione completa.

✓Node.js esegue JS lato server e fornisce npm per gestire dipendenze.
✓React è dichiarativo: descrivi lo stato, React aggiorna il DOM via Virtual DOM.
✓Vite usa ES Modules nativi: dev server <1s e HMR istantaneo.
✓Architettura: Frontend 5173 ⇄ JSON ⇄ Backend 3001, deploy Vercel + Render.
✓Progetto finale DevNotes: CRUD, ricerca, auth JWT, URL pubblico per portfolio.

📚 Prossimo passo — L02 Componenti e JSX

Ora che hai il progetto avviato, entriamo nel cuore di React: scopriremo come è fatta la cartella src, cos'è JSX davvero e come creare i primi componenti funzionali con props. Porta con te il progetto devnotes funzionante.

Lascia un commento