Quickstarters
Come costruire un frontend Vue e collegarlo a un backend?
34 min
in questo tutorial, costruirai un'applicazione to do list utilizzando vue e la collegherai a un servizio backend gestito questa guida è perfetta per te se desideri padroneggiare le operazioni crud essenziali (crea, leggi, aggiorna, elimina) e costruire un'interfaccia utente intuitiva alla fine, la tua app interagirà completamente con un backend alimentato da back4app sviluppare un'applicazione full stack può comportare configurazioni backend complesse, gestione del database e autenticazione degli utenti per permetterti di concentrarti sulla creazione di un eccezionale frontend vue, utilizzeremo back4app per gestire il backend senza sforzo back4app fornisce un database pronto all'uso, autenticazione, cloud code per la logica del server personalizzata e sdk per integrarsi con la tua app questo ti consente di distribuire applicazioni scalabili senza il fastidio della manutenzione del server punti chiave seguendo questo tutorial, tu imposta un progetto vue moderno utilizzando strumenti standard del settore integra senza soluzione di continuità un servizio backend per gestire i dati della tua applicazione implementa operazioni crud essenziali per una to do list unhandled content type 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 vue , inclusi componenti, dati reattivi e gestione degli eventi familiarità con l'api di composizione di vue 3 è utile 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, sei pronto per impostare il tuo progetto impostazione del progetto inizia preparando il tuo ambiente di sviluppo locale e inizializzando il tuo progetto vue con vite per un'esperienza di build veloce e moderna verifica di avere node js (versione lts) installato se non lo hai, scaricalo da nodejs org https //nodejs org/ crea il tuo progetto vue eseguendo npm create vite\@latest todo app 3 cambia nella directory del tuo progetto cd todo app 4 installa le dipendenze npm install 5 avvia il server di sviluppo per assicurarti che tutto funzioni npm run dev apri l'url fornito nel tuo browser con il tuo frontend vue pronto, il passo successivo è configurare il tuo backend su back4app creazione del backend todo back4app offre un servizio backend completamente gestito alimentato da parse , completo di un database nosql, autenticazione degli utenti, cloud code e generazione automatica delle api segui questi passaggi per creare un 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 vai a "database" > "browser" , clicca su "crea una classe" , e seleziona "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) – quando il compito è dovuto clicca su "salva" per creare lo schema integrazione di back4app con vue utilizzerai il parse javascript sdk per comunicare tra il tuo frontend vue e il backend di back4app installa il parse sdk npm install parse configura il sdk modificando src/main js importa il sdk e inizializzalo con il tuo application id e javascript key dal dashboard di back4app (trovato sotto app settings > security & keys ) import { createapp } from 'vue'; import app from ' /app vue'; import parse from 'parse/dist/parse min js'; const parse app id = 'your application id'; const parse js key = 'your javascript key'; const parse server url = 'https //parseapi back4app com/'; parse initialize(parse app id, parse js key); parse serverurl = parse server url; createapp(app) mount('#app'); con il tuo backend connesso, ora puoi costruire l'interfaccia della to do list e integrare le operazioni crud sviluppo del frontend la tua applicazione vue consisterà in componenti per aggiungere, visualizzare, aggiornare e rimuovere attività sfrutterai la reattività di vue per gestire lo stato e garantire aggiornamenti fluidi strutturare i tuoi componenti crea una components cartella all'interno di src per ospitare i tuoi componenti vue mkdir src/components touch src/components/taskform vue src/components/tasklist vue src/components/taskitem vue taskform vue questo componente gestisce l'aggiunta di nuove attività utilizza un modulo controllato per catturare l'input dell'utente \<template> \<form @submit prevent="handlesubmit"> \<input type="text" placeholder="task title" v model="title" required /> \<input type="text" placeholder="description" v model="description" required /> \<button type="submit">add task\</button> \</form> \</template> \<script> import parse from 'parse/dist/parse min js'; export default { name 'taskform', props \['fetchtasks'], data() { return { title '', description '' }; }, methods { async handlesubmit() { 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 fetchtasks(); this title = ''; this description = ''; } catch (error) { console error('error adding task ', error); } } } }; \</script> tasklist vue questo componente visualizza l'elenco delle attività e integra le azioni delle attività \<template> \<div> \<p v if="!tasks length">no tasks available\</p> \<taskitem v for="task in tasks" \ key="task id" \ task="task" \ fetchtasks="fetchtasks" /> \</div> \</template> \<script> import taskitem from ' /taskitem vue'; export default { name 'tasklist', components { taskitem }, props \['tasks', 'fetchtasks'] }; \</script> taskitem vue questo componente rappresenta un'attività individuale e include azioni per contrassegnarla come completata o eliminarla \<template> \<div \ class="\['task item', { completed task completed }]"> \<div> \<h3>{{ task title }}\</h3> \<p>{{ task description }}\</p> \</div> \<div> \<button @click="handlecomplete"> {{ task completed ? 'undo' 'complete' }} \</button> \<button @click="handledelete">delete\</button> \</div> \</div> \</template> \<script> import parse from 'parse/dist/parse min js'; export default { name 'taskitem', props \['task', 'fetchtasks'], methods { async handlecomplete() { 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 fetchtasks(); } catch (error) { console error('error updating task ', error); } }, async handledelete() { try { const query = new parse query('task'); const tasktodelete = await query get(this task id); await tasktodelete destroy(); this fetchtasks(); } catch (error) { console error('error deleting task ', error); } } } }; \</script> gestire lo stato in app vue nel tuo componente principale, gestirai l'elenco delle attività utilizzando i dati reattivi di vue e i lifecycle hooks \<template> \<div class="container"> \<h1>to do list\</h1> \<taskform \ fetchtasks="fetchtasks" /> \<tasklist \ tasks="tasks" \ fetchtasks="fetchtasks" /> \</div> \</template> \<script> import { ref, onmounted } from 'vue'; import parse from 'parse/dist/parse min js'; import taskform from ' /components/taskform vue'; import tasklist from ' /components/tasklist vue'; export default { name 'app', components { taskform, tasklist }, setup() { const tasks = ref(\[]); const fetchtasks = async () => { try { const task = parse object extend('task'); const query = new parse query(task); const results = await query find(); tasks value = results map(task => ({ id task id, task tojson() })); } catch (error) { console error('error fetching tasks ', error); } }; onmounted(fetchtasks); return { tasks, fetchtasks }; } }; \</script> stilizzazione dell'applicazione crea un styles css file in src per aggiungere uno stile di base container { max width 600px; margin 40px auto; padding 0 20px; text align center; font family sans serif; } container 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; } } importa il foglio di stile in main js import ' /styles css'; distribuzione del frontend su back4app web deployment back4app web deployment ti consente di containerizzare la tua applicazione vue per la produzione con docker configurare vite per la produzione regola vite config js per impostare correttamente il percorso di base per un ambiente containerizzato import { defineconfig } from 'vite'; import vue from '@vitejs/plugin vue'; export default defineconfig({ plugins \[vue()], base ' /', }); genera la build di produzione npm run build creazione di un dockerfile crea un dockerfile nella directory principale # stage 1 build the vue app from node 18 alpine as build workdir /app copy package json package lock json / run npm install copy run npm run build \# stage 2 serve the app using nginx from nginx\ alpine copy from=build /app/dist /usr/share/nginx/html expose 80 cmd \["nginx", " g", "daemon off;"] testare il contenitore docker localmente costruisci la tua immagine docker docker build t todo frontend esegui il contenitore docker run p 8080 80 todo frontend visita http //localhost 8080 per verificare che la tua app vue sia servita correttamente distribuzione su back4app inizializza un repository git, aggiungi i tuoi file 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 main accedi a distribuzione web back4app https //www back4app com/containers clicca "crea nuova app" , fornisci un nome per il progetto e seleziona repository github autorizza back4app ad accedere al tuo repository e scegli distribuzione dockerfile conferma le impostazioni di build e clicca "distribuisci" per avviare la prima build monitoraggio del tuo deployment dopo il deployment, utilizza il dashboard di back4app per visualizzare i log per il debug monitorare l'uso delle risorse e i riavvii dei container rideploy su nuovi commit utilizzando il "trigger build" opzione configurare domini personalizzati se necessario accedi all'applicazione live su https //todoapp ku5ofg8s b4a run/ https //todoapp ku5ofg8s b4a run/ https //todoapp ku5ofg8s b4a run/ test e debugging dopo il deployment, assicurati che il tuo frontend vue comunichi correttamente con il backend di back4app verifica le chiamate api apri gli strumenti per sviluppatori del tuo browser (f12 → rete) per ispezionare le richieste api aggiungi e recupera attività usa l'interfaccia dell'app per aggiungere attività e controlla il browser del database back4app operazioni crud prova a completare e cancellare attività, quindi conferma le modifiche nel backend casi limite valida gli input del modulo e simula condizioni di rete lente (utilizzando chrome devtools) per valutare le prestazioni risoluzione dei problemi comuni errori cors aggiorna intestazioni e domini consentiti in back4app (dashboard > impostazioni app > sicurezza e chiavi) per includere il tuo url frontend errori di autenticazione (401) conferma che il tuo id applicazione e la chiave javascript siano corretti problemi di distribuzione del backend controlla i log del contenitore nel dashboard di back4app e riavvia il contenitore se necessario migliori pratiche per utilizzare back4app con vue per ottimizzare la tua applicazione richieste di dati efficienti usa richieste batch per più operazioni const tasks = \[task1, task2, task3]; parse object saveall(tasks); ottimizza le query richiedi solo i campi necessari query select('title', 'completed'); variabili d'ambiente memorizza le chiavi sensibili in un env file vite parse app id=your app id vite parse js key=your js key sicurezza usa acl per limitare l'accesso task setacl(new parse acl(parse user current())); cloud code scarica la logica complessa su funzioni backend per ridurre l'esposizione dell'api conclusione hai costruito con successo un'applicazione to do list full stack configurando un frontend vue, integrandolo con il backend di back4app e distribuendolo tramite flussi di lavoro containerizzati questo tutorial ha dimostrato un percorso semplificato dallo sviluppo locale alla distribuzione nel cloud, garantendo un'interazione fluida tra la tua interfaccia utente vue e i servizi backend guardando al futuro, considera miglioramenti come la gestione avanzata degli utenti, aggiornamenti in tempo reale e integrazione di servizi di terze parti per ulteriori informazioni, visita la documentazione di back4app https //www back4app com/docs ed esplora le risorse della comunità