Quickstarters
¿Cómo construir un frontend de Sveltekit y conectarlo a un backend?
34 min
en este tutorial, construirás una aplicación de lista de tareas utilizando sveltekit y la conectarás a un servicio backend gestionado impulsado por back4app esta guía está diseñada para ti si deseas dominar las operaciones crud esenciales (crear, leer, actualizar, eliminar) y crear una interfaz dinámica y receptiva utilizando sveltekit al final de este tutorial, tu aplicación interactuará sin problemas con un backend que maneja el almacenamiento de datos, la autenticación y más desarrollar una aplicación de pila completa puede ser complejo debido a la configuración del backend y la gestión de bases de datos para simplificar tu flujo de trabajo, utilizamos back4app, un robusto backend como servicio, para que puedas centrarte en crear un frontend excepcional con sveltekit back4app proporciona una base de datos nosql completamente gestionada, autenticación, cloud code para lógica personalizada y sdks para una integración fluida esto te permite construir y desplegar aplicaciones escalables sin gestionar la infraestructura del servidor puntos clave siguiendo este tutorial, tú inicializa un proyecto moderno de sveltekit utilizando vite integra un servicio backend para gestionar los datos de tu aplicación implementa operaciones crud esenciales para una lista de tareas unhandled content type requisitos previos antes de comenzar, asegúrate de tener node js y npm instalados en tu máquina verifica ejecutando node v y npm v conocimientos básicos de sveltekit , incluyendo enrutamiento, funciones de carga y variables reactivas una cuenta de back4app para gestionar tus servicios de backend regístrate en back4app https //www back4app com/ si aún no lo has hecho con estos requisitos previos en su lugar, estás listo para comenzar a construir tu proyecto configuración del proyecto comienza configurando tu entorno de desarrollo local e inicializando un nuevo proyecto de sveltekit asegúrate de tener node js (versión lts) instalado si no, descárgalo desde nodejs org https //nodejs org/ crea tu proyecto de sveltekit ejecutando npx sv create todo app cuando se le solicite, elija las opciones de sveltekit que mejor se adapten a su proyecto (por ejemplo, proyecto esqueleto, typescript si lo desea) navegue a su directorio de proyecto cd todo app inicie el servidor de desarrollo para verificar la configuración npm run dev su aplicación sveltekit ahora debería abrirse en su navegador con el frontend listo, proceda a crear su backend en back4app creando el backend de todo back4app ofrece un servicio de backend completamente gestionado impulsado por parse incluye una base de datos nosql, autenticación, cloud code y apis autogeneradas sigue estos pasos para configurar tu backend inicia sesión en tu panel de back4app https //www back4app com/ y haz clic en "crear una nueva aplicación " nombra tu aplicación (por ejemplo, todoapp ) y selecciona nodejs/parse como el tipo de backend navega a "base de datos" > "navegador" , haz clic en "crear una clase" , y elige "personalizada" nombra la clase tarea y configúralo para lectura y escritura pública (puedes refinar estos permisos más tarde) en la clase tarea , agrega los siguientes campos título (string) – el título de la tarea descripción (string) – detalles sobre la tarea completado (booleano) – estado de finalización de la tarea fechadevencimiento (fecha) – la fecha límite para la tarea haz clic en "guardar" para crear el esquema integrando back4app con sveltekit utilizarás el parse javascript sdk para conectar tu aplicación sveltekit al backend de back4app instalar el sdk de parse npm install parse configura el sdk editando el src/app html o creando un módulo dedicado (por ejemplo, src/lib/parseclient js ) por ejemplo, crea src/lib/parseclient js con lo siguiente 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; ahora puedes importar este módulo en tus rutas o componentes de sveltekit para interactuar con back4app desarrollando el frontend tu aplicación sveltekit consistirá en rutas y componentes para agregar, mostrar, actualizar y eliminar tareas aprovecha el enrutamiento basado en archivos de sveltekit y las variables reactivas para actualizaciones dinámicas estructurando tus componentes crea una src/lib/components carpeta para organizar tus componentes mkdir p src/lib/components crearás los siguientes componentes taskform svelte – para agregar nuevas tareas tasklist svelte – para mostrar la lista de tareas taskitem svelte – para representar tareas individuales taskform svelte este componente renderiza un formulario que captura los detalles de la tarea y los envía 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 este componente representa una tarea individual, con botones para alternar su estado de finalización o eliminar la tarea \<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 este componente muestra todas las tareas iterando sobre un array y renderizando cada tarea usando el 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 (ruta principal) en tu ruta principal de sveltekit (por ejemplo, src/routes/+page svelte ), gestiona el estado de las tareas e integra los componentes \<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> estilizando la aplicación crea una hoja de estilo global (por ejemplo, src/app css ) para agregar un estilo básico 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 esta hoja de estilo en tu src/app html o archivo de diseño principal desplegando el frontend en back4app web deployment back4app web deployment proporciona un entorno en contenedores para alojar tu aplicación sveltekit configurando vite para producción actualiza tu vite config js si es necesario para establecer la ruta base para un entorno en contenedores import { sveltekit } from '@sveltejs/kit/vite'; import { defineconfig } from 'vite'; export default defineconfig({ plugins \[sveltekit()], base ' /', }); genera la construcción de producción npm run build creando un dockerfile antes de que puedas probar tu contenedor docker localmente, necesitas instalar adapter node que construye tu sitio para node js para hacer esto, ejecuta el comando en tu terminal npm i d @sveltejs/adapter node después de instalar el adapter node , abre el archivo svelte config js y reemplaza el código allí con el bloque de código a continuación 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; ahora, crea un dockerfile en la raíz de tu proyecto con el siguiente contenido 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" ] probando el contenedor docker localmente construye tu imagen de docker docker build t todo frontend ejecuta el contenedor docker run p 3000 3000 todo frontend abre http //localhost 3000 en tu navegador para verificar que tu aplicación sveltekit se sirva correctamente desplegando a back4app inicializa un repositorio git, agrega tus archivos de proyecto y haz un 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 inicia sesión en despliegue web de back4app https //www back4app com/containers haz clic en "crear nueva aplicación" , proporciona el nombre de tu proyecto y selecciona tu repositorio de github autoriza a back4app y elige despliegue de dockerfile confirma la configuración de la construcción y haz clic en "desplegar" para iniciar el proceso de despliegue monitoreo de tu despliegue después del despliegue, utiliza el panel de control de back4app para ver registros para depuración monitorear el rendimiento del contenedor y el uso de recursos activar reconstrucciones en nuevos compromisos configurar dominios personalizados si es necesario accede a tu aplicación en vivo en https //todoapp ku5ofg8s b4a run/ https //todoapp ku5ofg8s b4a run/ https //todoapp ku5ofg8s b4a run/ pruebas y depuración después del despliegue, confirma que tu frontend de sveltekit se comunica correctamente con el backend de back4app verificación de api usa las herramientas de desarrollador de tu navegador (f12 → red) para inspeccionar las llamadas a la api operaciones de tareas agrega, completa y elimina tareas a través de la interfaz de usuario y verifica las actualizaciones en el navegador de base de datos de back4app manejo de errores revisa los registros de la consola en busca de errores y prueba casos límite como enviar tareas vacías pruebas de rendimiento simula condiciones de red lentas utilizando herramientas del navegador para evaluar la capacidad de respuesta mejores prácticas para usar back4app con sveltekit para optimizar tu aplicación solicitudes eficientes usa operaciones por lotes al manejar múltiples tareas const tasks = \[task1, task2, task3]; parse object saveall(tasks); consultas optimizadas recuperar solo los campos necesarios query select('title', 'completed'); gestión del entorno almacenar claves sensibles en variables de entorno vite parse app id=your app id vite parse js key=your js key seguridad usar acls para restringir el acceso task setacl(new parse acl(parse user current())); descarga de backend aprovechar cloud code para lógica compleja para reducir la exposición de la api conclusión ahora has construido una aplicación de lista de tareas de pila completa creando un frontend de sveltekit, integrándolo con el backend de back4app y desplegándolo utilizando flujos de trabajo en contenedores este tutorial te guió a través de cada paso—desde el desarrollo local hasta el despliegue en la nube—asegurando una interacción fluida entre tu ui de sveltekit y los servicios de backend mirando hacia adelante, considera mejoras como actualizaciones en tiempo real, autenticación mejorada e integraciones de terceros para más aprendizaje, visita la documentación de back4app https //www back4app com/docs y explora recursos de la comunidad