Quickstarters
Come costruire un frontend Svelte e collegarlo a un backend?
34 min
in questo tutorial, costruirai un'applicazione to do list utilizzando svelte 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 intuitiva utilizzando svelte alla fine, la tua applicazione interagirà senza problemi con un backend che gestisce l'archiviazione dei dati, l'autenticazione e altro sviluppare un'applicazione full stack può essere complesso a causa della configurazione del backend e della gestione del database per semplificare il tuo lavoro, utilizziamo back4app—un robusto backend as a service —così puoi concentrarti sulla costruzione di un frontend svelte dinamico back4app fornisce un database nosql completamente gestito, autenticazione, cloud code per logica personalizzata e sdk per un'integrazione fluida questo ti consente di distribuire applicazioni scalabili senza gestire l'infrastruttura del server punti chiave seguendo questo tutorial, tu inizializza un progetto svelte moderno con vite integra senza problemi un servizio backend per gestire i dati della tua app implementa operazioni crud essenziali per una to do list dinamica 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 con node v e npm v conoscenze di base su svelte , inclusi componenti, variabili reattive e gestione degli eventi un account back4app per gestire i tuoi servizi backend registrati su back4app https //www back4app com/ se non ne hai già uno 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 svelte utilizzando vite assicurati di avere node js (versione lts) installato se non lo hai, scaricalo da nodejs org https //nodejs org/ crea il tuo progetto svelte eseguendo npm create vite\@latest todo app template svelte cambia nella directory del tuo progetto cd todo app installa le dipendenze necessarie npm install avvia il server di sviluppo per verificare la configurazione npm run dev apri l'url fornito nel tuo browser per vedere la tua app svelte 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 include un database nosql, autenticazione, cloud code e api generate automaticamente segui questi passaggi per impostare il tuo backend accedi al tuo dashboard di back4app https //www back4app com/ e clicca su "crea una nuova app " nomina la 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" nomina la 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 svelte per connettere la tua app svelte con back4app, utilizzerai il parse javascript sdk installa il parse sdk npm install parse configura il sdk modificando il src/main js file importa il sdk e inizializzalo con il tuo application id e javascript key dal dashboard di back4app (trova questi sotto app settings > security & keys ) import app from ' /app svelte'; 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; const app = new app({ target document getelementbyid('app') }); export default app; con il tuo backend connesso, ora puoi costruire l'interfaccia della to do list e implementare operazioni crud sviluppo del frontend la tua applicazione svelte consisterà in componenti che ti permetteranno di aggiungere, visualizzare, aggiornare e eliminare attività sfrutterai la reattività di svelte per aggiornamenti dinamici strutturare i tuoi componenti crea una components cartella all'interno di src per organizzare i tuoi componenti svelte mkdir src/components creerai i seguenti componenti taskform svelte – per aggiungere nuovi compiti tasklist svelte – per visualizzare l'elenco dei compiti taskitem svelte – per rappresentare compiti individuali taskform svelte questo componente rende un modulo che cattura i dettagli del compito e li invia a back4app \<script> import { createeventdispatcher } from 'svelte'; import parse from 'parse/dist/parse min js'; let title = ''; let description = ''; const dispatch = createeventdispatcher(); async function handlesubmit(event) { event preventdefault(); try { const task = parse object extend('task'); const task = new task(); task set('title', title); task set('description', description); task set('completed', false); await task save(); dispatch('refresh'); title = ''; description = ''; } catch (error) { console error('error adding task ', error); } } \</script> \<form on\ submit|preventdefault={handlesubmit}> \<input type="text" placeholder="task title" bind\ value={title} required /> \<input type="text" placeholder="description" bind\ value={description} required /> \<button type="submit">add task\</button> \</form> taskitem svelte questo componente rappresenta un'attività individuale, consentendoti di attivare o disattivare il suo stato di completamento o di eliminarla \<script> import parse from 'parse/dist/parse min js'; export let task; export let refresh; async function togglecomplete() { try { const query = new parse query('task'); const tasktoupdate = await query get(task id); tasktoupdate set('completed', !task completed); await tasktoupdate save(); refresh(); } catch (error) { console error('error updating task ', error); } } async function deletetask() { try { const query = new parse query('task'); const tasktodelete = await query get(task id); await tasktodelete destroy(); refresh(); } catch (error) { console error('error deleting task ', error); } } \</script> \<div class="task item {task completed ? 'completed' ''}"> \<div> \<h3>{task title}\</h3> \<p>{task description}\</p> \</div> \<div> \<button on\ click={togglecomplete}> {task completed ? 'undo' 'complete'} \</button> \<button on\ click={deletetask}>delete\</button> \</div> \</div> tasklist svelte questo componente visualizza tutte le attività iterando su di esse e renderizzando ciascuna utilizzando taskitem \<script> import taskitem from ' /taskitem svelte'; export let tasks = \[]; export let refresh; \</script> {#if tasks length === 0} \<p>no tasks available\</p> {\ else} {#each tasks as task (task id)} \<taskitem {task} {refresh} /> {/each} {/if} app svelte nel tuo componente principale, gestisci lo stato dell'applicazione e integra i tuoi componenti di attività \<script> import { onmount } from 'svelte'; import parse from 'parse/dist/parse min js'; import taskform from ' /components/taskform svelte'; import tasklist from ' /components/tasklist svelte'; let tasks = \[]; async function fetchtasks() { try { const task = parse object extend('task'); const query = new parse query(task); const results = await query find(); tasks = results map(task => ({ id task id, task tojson() })); } catch (error) { console error('error fetching tasks ', error); } } onmount(fetchtasks); \</script> \<div class="container"> \<h1>to do list\</h1> \<taskform on\ refresh={fetchtasks} /> \<tasklist {tasks} refresh={fetchtasks} /> \</div> stilizzazione dell'applicazione crea un src/global css file 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 questo foglio di stile nel tuo src/main js import ' /global css'; distribuzione del frontend su back4app web deployment back4app web deployment offre un ambiente containerizzato per ospitare la tua applicazione svelte configurare vite per la produzione regola vite config js se necessario per impostare correttamente il percorso di base per un ambiente containerizzato import { defineconfig } from 'vite'; import { svelte } from '@sveltejs/vite plugin svelte'; export default defineconfig({ plugins \[svelte()], base ' /', }); genera la build di produzione npm run build creazione di un dockerfile crea un dockerfile nella directory principale con il seguente contenuto \# stage 1 build the svelte 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 apri http //localhost 8080 nel tuo browser per verificare che la tua app svelte sia servita correttamente distribuzione 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 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 la prima build monitorare il tuo deployment dopo il deployment, 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 svelte comunichi correttamente con il backend di back4app verifica api usa gli strumenti per sviluppatori del tuo browser (f12 → rete) per ispezionare le chiamate api operazioni sui compiti aggiungi, completa ed 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 l'invio di compiti vuoti test delle prestazioni simula condizioni di rete lente utilizzando gli strumenti del browser per valutare la reattività migliori pratiche per utilizzare back4app con svelte per ottimizzare la tua applicazione richieste efficienti usa operazioni in batch quando gestisci più compiti const tasks = \[task1, task2, task3]; parse object saveall(tasks); query ottimizzate recupera 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())); offloading del backend sfrutta il cloud code per logiche aziendali complesse per ridurre l'esposizione delle api conclusione hai ora costruito un'applicazione to do list full stack creando un frontend svelte, 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 fluida tra la tua interfaccia svelte e i servizi backend guardando al futuro, considera di migliorare la tua app con aggiornamenti in tempo reale, autenticazione migliorata e integrazioni di terze parti per ulteriori informazioni, visita la documentazione di back4app https //www back4app com/docs ed esplora le risorse della comunità