Quickstarters
Come costruire un frontend Sveltekit e collegarlo a un backend?
34 min
in questo tutorial, costruirai un'applicazione to do list utilizzando sveltekit 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 utilizzando sveltekit alla fine di questo tutorial, 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 flusso di lavoro, utilizziamo back4app—un robusto backend as a service—così puoi concentrarti sulla creazione di un eccezionale frontend sveltekit back4app fornisce un database nosql completamente gestito, autenticazione, cloud code per logica personalizzata e sdk per un'integrazione fluida questo ti consente di costruire e distribuire applicazioni scalabili senza gestire l'infrastruttura del server punti chiave seguendo questo tutorial, tu inizializza un progetto sveltekit moderno utilizzando vite integra un servizio backend per gestire i dati della tua applicazione 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 eseguendo node v e npm v conoscenze di base su sveltekit , inclusi routing, funzioni di caricamento e variabili reattive 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 sveltekit assicurati di avere node js (versione lts) installato se non lo hai, scaricalo da nodejs org https //nodejs org/ crea il tuo progetto sveltekit eseguendo npx sv create todo app quando richiesto, scegli le opzioni di sveltekit che meglio si adattano al tuo progetto (ad esempio, progetto scheletro, typescript se desiderato) naviga nella directory del tuo progetto cd todo app avvia il server di sviluppo per verificare la configurazione npm run dev la tua app sveltekit dovrebbe ora aprirsi nel tuo browser 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 configurare il tuo backend accedi al tuo cruscotto 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 configurala per lettura e scrittura pubbliche (puoi affinare queste autorizzazioni 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 sveltekit utilizzerai il parse javascript sdk per connettere la tua app sveltekit al backend di back4app installa il parse sdk npm install parse configura il sdk modificando il src/app html o creando un modulo dedicato (ad esempio, src/lib/parseclient js ) ad esempio, crea src/lib/parseclient js con il seguente 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; export default parse; ora puoi importare questo modulo nelle tue rotte o componenti sveltekit per interagire con back4app sviluppare il frontend la tua applicazione sveltekit consisterà in rotte e componenti per aggiungere, visualizzare, aggiornare e eliminare attività sfrutta il routing basato su file di sveltekit e le variabili reattive per aggiornamenti dinamici strutturare i tuoi componenti crea una src/lib/components cartella per organizzare i tuoi componenti mkdir p src/lib/components creerai i seguenti componenti taskform svelte – per aggiungere nuove attività tasklist svelte – per visualizzare l'elenco delle attività taskitem svelte – per rappresentare attività 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 '$lib/parseclient'; 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 compito individuale, con pulsanti per attivare o disattivare il suo stato di completamento o eliminare il compito \<script> import parse from '$lib/parseclient'; 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 un array e renderizzando ogni attività utilizzando il componente taskitem \<script> import taskitem from '$lib/components/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} +page svelte (rotta principale) nella tua rotta principale sveltekit (ad esempio, src/routes/+page svelte ), gestisci lo stato delle attività e integra i componenti \<script> import { onmount } from 'svelte'; import parse from '$lib/parseclient'; import taskform from '$lib/components/taskform svelte'; import tasklist from '$lib/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 foglio di stile globale (ad es , src/app css ) 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/app html o nel file di layout principale distribuzione del frontend su back4app web deployment back4app web deployment fornisce un ambiente containerizzato per ospitare la tua applicazione sveltekit configurare vite per la produzione aggiorna il tuo vite config js se necessario per impostare il percorso di base per un ambiente containerizzato import { sveltekit } from '@sveltejs/kit/vite'; import { defineconfig } from 'vite'; export default defineconfig({ plugins \[sveltekit()], base ' /', }); genera la build di produzione npm run build creazione di un dockerfile prima di poter testare il tuo container docker localmente, devi installare adapter node che costruisce il tuo sito per node js per fare ciò, esegui il comando nel tuo terminale npm i d @sveltejs/adapter node dopo aver installato l' adapter node , apri il svelte config js file e sostituisci il codice lì con il blocco di codice qui sotto import adapter from '@sveltejs/adapter node'; / @type {import('@sveltejs/kit') config} / const config = { 	kit { 	 // adapter auto only supports some environments, see https //svelte dev/docs/kit/adapter auto for a list 	 // if your environment is not supported, or you settled on a specific environment, switch out the adapter 	 // see https //svelte dev/docs/kit/adapters for more information about adapters 	 adapter adapter() 	} }; export default config; ora, crea un dockerfile nella radice del tuo progetto con il seguente contenuto from node 22 alpine as builder workdir /app copy package json / run npm ci copy run npm run build run npm prune production from node 22 alpine workdir /app copy from=builder /app/build build/ copy from=builder /app/node modules node modules/ copy package json expose 3000 env node env=production cmd \[ "node", "build" ] testare il contenitore docker localmente costruisci la tua immagine docker docker build t todo frontend esegui il contenitore docker run p 3000 3000 todo frontend apri http //localhost 3000 nel tuo browser per verificare che la tua app sveltekit 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 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 deployment monitoraggio del tuo deployment dopo il deployment, utilizza il dashboard di back4app per visualizzare i log per il debug monitorare le prestazioni dei 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 sveltekit 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 sveltekit 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'); gestione dell'ambiente memorizza le chiavi sensibili nelle variabili d'ambiente 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())); scarico del backend sfrutta il cloud code per logiche complesse per ridurre l'esposizione delle api conclusione hai ora costruito un'applicazione to do list full stack creando un frontend sveltekit, 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 sveltekit e i servizi backend guardando al futuro, considera miglioramenti come 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à