Quickstarters
Come costruire un frontend Angular e collegarlo a un backend?
39 min
in questo tutorial, costruirai un'applicazione to do list utilizzando angular e la collegherai a un servizio backend gestito alimentato da back4app questa guida è progettata per te se desideri padroneggiare le operazioni crud essenziali (crea, leggi, aggiorna, elimina) e creare un'interfaccia dinamica e reattiva con angular alla fine di questo tutorial, la tua applicazione comunicherà senza problemi con un backend che gestisce l'archiviazione dei dati, l'autenticazione e altro costruire un'applicazione full stack comporta spesso una configurazione complessa del backend e gestione del database per semplificare il tuo flusso di lavoro, utilizziamo back4app— un robusto backend as a service —così puoi concentrarti sullo sviluppo di un frontend angular ricco di funzionalità back4app fornisce un database nosql completamente gestito, autenticazione degli utenti, cloud code per logica personalizzata e sdk per integrazione senza soluzione di continuità questo ti consente di costruire e distribuire applicazioni scalabili senza gestire l'infrastruttura del server punti chiave seguendo questo tutorial, tu inizializza un progetto angular moderno utilizzando angular cli integra senza problemi un servizio backend per gestire i dati della tua app implementa operazioni crud essenziali per un to do list dinamico distribuisci la tua applicazione completamente funzionale utilizzando flussi di lavoro containerizzati su back4app requisiti prima di iniziare, assicurati di avere node js e npm installati sul tuo computer verifica le installazioni con node v e npm v conoscenze di base di angular , inclusi componenti, servizi e iniezione delle dipendenze un account back4app per gestire i tuoi servizi backend registrati su back4app https //www back4app com/ se non lo hai già fatto con questi requisiti in atto, sei pronto per iniziare a costruire il tuo progetto impostazione del progetto inizia impostando il tuo ambiente di sviluppo locale e inizializzando un nuovo progetto angular utilizzando angular cli assicurati di avere node js (versione lts) installato se non lo hai, scaricalo da nodejs org https //nodejs org/ installa l'angular cli globalmente se non lo hai già fatto npm install g @angular/cli crea un nuovo progetto angular ng new todo app routing style=css naviga nella directory del tuo progetto cd todo app avvia il server di sviluppo per verificare la configurazione ng serve apri http //localhost 4200 nel tuo browser per vedere la tua app angular in azione con il frontend pronto, procedi a creare il tuo backend su back4app creazione del backend todo back4app offre un servizio backend completamente gestito alimentato da parse , inclusa una database nosql, autenticazione, cloud code e api auto generate segui questi passaggi per configurare il tuo backend accedi al tuo dashboard di back4app https //www back4app com/ e clicca su "crea una nuova app " dai un nome alla tua app (ad esempio, todoapp ) e seleziona nodejs/parse come tipo di backend naviga su "database" > "browser" , clicca su "crea una classe" , e scegli "personalizzato" dai un nome alla classe task e imposta le autorizzazioni per consentire lettura e scrittura pubbliche (puoi affinare queste impostazioni in seguito) nella classe task aggiungi i seguenti campi titolo (string) – il titolo del compito descrizione (string) – dettagli sul compito completato (boolean) – stato di completamento del compito datascadenza (data) – la scadenza per il compito clicca su "salva" per creare lo schema integrazione di back4app con angular utilizzerai il parse javascript sdk per connettere la tua app angular al backend di back4app installa il parse sdk npm install parse configura il sdk nel tuo progetto angular apri src/app/app module ts (o crea un servizio dedicato) e inizializza parse con il tuo application id e javascript key dal dashboard di back4app (trovato sotto app settings > security & keys ) ad esempio, crea un servizio parse service ts nella directory src import { injectable } from '@angular/core'; import parse from 'parse'; @injectable({ providedin 'root', }) export class parseservice { constructor() { const parse app id = "your application id"; const parse js key = "your javascript key"; parse initialize(parse app id, parse js key); (parse as any) serverurl = 'https //parseapi back4app com/'; } } poi, nei tuoi componenti, inietta semplicemente parseservice nel costruttore il servizio eseguirà il suo costruttore una volta (all'avvio dell'applicazione), inizializzando parse per te con il tuo backend connesso, ora puoi costruire l'interfaccia utente della to do list e implementare operazioni crud sviluppo del frontend la tua applicazione angular consisterà in componenti e servizi per aggiungere, visualizzare, aggiornare e eliminare attività sfrutterai l'architettura dei componenti di angular e l'iniezione delle dipendenze per una gestione fluida dei dati strutturare i tuoi componenti genera i seguenti componenti utilizzando angular cli ng generate component components/task form ng generate component components/task list ng generate component components/task item taskformcomponent questo componente visualizza un modulo per aggiungere nuovi compiti cattura l'input dell'utente e invia i dati del compito a back4app add task // src/app/components/task form/task form component ts import { component, eventemitter, output } from '@angular/core'; import { formsmodule } from '@angular/forms'; import as parse from 'parse'; @component({ selector 'app task form', templateurl ' /task form component html', styleurls \[' /task form component css'], imports \[formsmodule] }) export class taskformcomponent { title = ''; description = ''; @output() refreshtasks = new eventemitter\<void>(); async onsubmit() { try { const task = parse object extend('task'); const task = new task(); task set('title', this title); task set('description', this description); task set('completed', false); await task save(); this refreshtasks emit(); this title = ''; this description = ''; } catch (error) { console error('error adding task ', error); } } } tasklistcomponent questo componente visualizza un elenco di compiti iterando su un array e renderizzando ogni compito utilizzando il taskitemcomponent no tasks available // src/app/components/task list/task list component ts import { component, input, oninit } from '@angular/core'; import { commonmodule } from '@angular/common'; import as parse from 'parse'; import { taskitemcomponent } from ' /task item/task item component'; @component({ selector 'app task list', templateurl ' /task list component html', styleurls \[' /task list component css'], imports \[commonmodule, taskitemcomponent] }) export class tasklistcomponent implements oninit { @input() tasks any\[] = \[]; @input() fetchtasks! () => void; ngoninit() void {} } taskitemcomponent questo componente rappresenta un compito individuale e fornisce pulsanti per attivare lo stato di completamento o eliminare il compito {{ task title }} {{ task description }} {{ task completed ? 'undo' 'complete' }} delete // src/app/components/task item/task item component ts import { component, eventemitter, input, output } from '@angular/core'; import as parse from 'parse'; @component({ selector 'app task item', templateurl ' /task item component html', styleurls \[' /task item component css'] }) export class taskitemcomponent { @input() task any; @output() taskchanged = new eventemitter\<void>(); async togglecomplete() { try { const query = new parse query('task'); const tasktoupdate = await query get(this task id); tasktoupdate set('completed', !this task completed); await tasktoupdate save(); this taskchanged emit(); } catch (error) { console error('error updating task ', error); } } async deletetask() { try { const query = new parse query('task'); const tasktodelete = await query get(this task id); await tasktodelete destroy(); this taskchanged emit(); } catch (error) { console error('error deleting task ', error); } } } integrazione di appcomponent nel tuo componente principale, gestisci lo stato delle attività e integra i componenti delle attività to do list // src/app/app component ts import { component, oninit } from '@angular/core'; import { parseservice } from ' /parse service'; import as parse from 'parse'; import { taskformcomponent } from ' /components/task form/task form component'; import { tasklistcomponent } from ' /components/task list/task list component'; @component({ selector 'app root', imports \[taskformcomponent, tasklistcomponent], templateurl ' /app component html', styleurl ' /app component css' }) export class appcomponent implements oninit { constructor(private parseservice parseservice) {} tasks any\[] = \[]; async fetchtasks() { try { const task = parse object extend('task'); const query = new parse query(task); const results = await query find(); this tasks = results map(task => ({ id task id, task tojson() })); } catch (error) { console error('error fetching tasks ', error); } } ngoninit() void { this fetchtasks(); } } stilizzazione dell'applicazione crea o aggiorna gli stili nei tuoi file css del componente o in src/styles css / src/styles css / container { max width 600px; margin 40px auto; padding 0 20px; text align center; font family sans serif; } h1 { margin bottom 20px; } form { display flex; flex direction column; align items center; gap 10px; margin bottom 20px; } form input\[type="text"] { width 80%; max width 400px; padding 8px; box sizing border box; font size 1rem; } form button { padding 8px 16px; cursor pointer; font size 1rem; border none; background color #eaeaea; transition background color 0 2s ease; } form button\ hover { background color #ccc; } task item { display flex; flex direction column; align items center; justify content center; gap 12px; border 1px solid #ccc; border radius 6px; padding 15px; margin 10px 0; background color #fafafa; text align center; transition background color 0 2s ease; } task item completed h3, task item completed p { text decoration line through; color #888; } task item h3 { margin 0; font size 1 1rem; } task item p { margin 0; font size 1rem; } task item button { padding 6px 12px; border none; background color #eaeaea; cursor pointer; font size 0 9rem; } task item button\ hover { background color #ccc; } @media (min width 600px) { task item { flex direction row; } } distribuzione del frontend su back4app web deployment back4app web deployment fornisce un ambiente containerizzato per ospitare la tua applicazione angular configurare angular per la produzione costruisci la tua app angular pronta per la produzione ng build questo comando genera una dist/ cartella contenente la tua app angular compilata creare un dockerfile crea un dockerfile nella radice del tuo progetto con il seguente contenuto from node 18 alpine as build workdir /app copy package json package lock json / run npm install g @angular/cli run npm install copy run ng build cmd \["ng", "serve", " host", "0 0 0 0"] testare il contenitore docker localmente costruisci la tua immagine docker docker build t todo frontend esegui il contenitore docker run p 4201 4200 todo frontend apri http //localhost 4201 nel tuo browser per verificare che la tua app angular sia servita correttamente distribuire su back4app inizializza un repository git, aggiungi i file del tuo progetto e fai il commit git init git add git commit m "initial commit for back4app deployment" git branch m main git remote add origin \<your github repository url> git push u origin maingit init git add git commit m "initial commit for back4app deployment" git branch m main git remote add origin \<your github repository url> git push u origin maingit init git add git commit m "initial commit for back4app deployment" git branch m main git remote add origin \<your github repository url> git push u origin maingit init git add git commit m "initial commit for back4app deployment" git branch m main git remote add origin \<your github repository url> git push u origin maingit init git add git commit m "initial commit for back4app deployment" git branch m main git remote add origin \<your github repository url> git push u origin maingit init git add git commit m "initial commit for back4app deployment" git branch m main git remote add origin \<your github repository url> git push u origin main accedi a back4app web deployment https //www back4app com/containers clicca su "crea nuova app" , fornisci il nome del tuo progetto e seleziona il tuo repository github autorizza back4app e scegli dockerfile deployment conferma le impostazioni di build e clicca su "deploy" per avviare il processo di distribuzione monitoraggio della tua distribuzione dopo la distribuzione, utilizza il dashboard di back4app per visualizzare i log per il debug monitorare le prestazioni del container e l'uso delle risorse attivare ricostruzioni su nuovi commit configurare domini personalizzati se necessario accedi alla tua applicazione live su https //todoapp ku5ofg8s b4a run/ https //todoapp ku5ofg8s b4a run/ https //todoapp ku5ofg8s b4a run/ test e debugging dopo il deployment, conferma che il tuo frontend angular comunichi efficacemente con il backend di back4app verifica api usa gli strumenti per sviluppatori del tuo browser (f12 → rete) per ispezionare le richieste api operazioni sui compiti aggiungi, completa e elimina compiti tramite l'interfaccia utente e verifica gli aggiornamenti nel browser del database di back4app gestione degli errori controlla i log della console per errori e testa casi limite come invii vuoti test delle prestazioni simula condizioni di rete lente utilizzando gli strumenti del browser per valutare la reattività migliori pratiche per utilizzare back4app con angular per ottimizzare la tua applicazione richieste efficaci usa operazioni in batch per gestire più compiti const tasks = \[task1, task2, task3]; parse object saveall(tasks); query ottimizzate recupera solo i campi necessari query select('title', 'completed'); gestione dell'ambiente memorizza le chiavi sensibili nelle variabili d'ambiente ng app parse app id=your app id ng app parse js key=your js key sicurezza usa le acl per limitare l'accesso ai dati task setacl(new parse acl(parse user current())); offloading del backend sfrutta il cloud code per logiche complesse per ridurre il carico sul frontend conclusione hai ora costruito un'applicazione to do list full stack creando un frontend angular, integrandolo con il backend di back4app e distribuendolo utilizzando flussi di lavoro containerizzati questo tutorial ti ha guidato attraverso ogni passaggio—dallo sviluppo locale alla distribuzione nel cloud—garantendo un'interazione robusta tra la tua interfaccia utente angular e i servizi backend guardando al futuro, considera miglioramenti come aggiornamenti in tempo reale, autenticazione migliorata e integrazioni di terze parti per ulteriori approfondimenti, visita la documentazione di back4app https //www back4app com/docs ed esplora le risorse della comunità