Creación de Aplicaciones con Svelte: Primeros Pasos Prácticos
Resumen
¿Cómo crear una aplicación con Svelte desde cero?
Crear una aplicación con Svelte es un proceso emocionante que nos permite entender cómo este framework facilita el desarrollo web. Svelte destaca por su sintaxis similar al HTML, su eficiencia, y cómo maneja la interacción con los usuarios. ¡Visualicemos cómo se hace!
¿Cómo iniciamos nuestro proyecto Svelte?
Para empezar un proyecto con Svelte, lo primero es crear un nuevo sandbox y elegir el template de Svelte. Al crear nuestro proyecto, verás un archivo package.json que enumera las dependencias del proyecto. Svelte usa Rollup para la construcción del código. Un archivo clave es rollup.config.js, que define esta configuración, disponible para que la examines en la sección de archivos y enlaces si deseas explorar cómo funciona Rollup más a fondo.
¿Cómo podemos estructurar nuestro contenido HTML en Svelte?
La estructura del HTML en Svelte se asemeja mucho a la del HTML convencional. Puedes incluir etiquetas <style> para estilos y <script> para lógica JavaScript. En nuestro caso, empezamos por maquetar una aplicación de películas:
Aquí, tenemos un formulario para una película con dos botones y una cantidad por defecto de "0".
¿Cómo modularizamos en Svelte con componentes?
Transformar el formulario en un componente nos ayuda a organizar mejor nuestro código. Creamos un archivo Form.svelte y movemos allí el formulario. Luego, lo importamos al archivo principal del siguiente modo:
<script>importFormfrom'./Form.svelte';</script>
Este enfoque modular permite reutilizar componentes en distintas partes de la aplicación.
¿Cómo manejamos listas y ciclos en Svelte?
Svelte usa una sintaxis similar a Handlebars para manejar ciclos. Supongamos que tenemos un array de películas y deseamos renderizar un formulario por cada elemento. Empleamos una estructura #each:
Aquí, los botones incrementan o decrementan la cantidad, asegurando que esta no baje de cero ni exceda la cantidad disponible.
¿Cómo manejamos estilos y CSS en Svelte?
Svelte facilita la incorporación de CSS directamente en los componentes. En el siguiente módulo aprenderemos a darle estilos usando CSS normal y preprocesadores. Además, descubriremos la metodología CSS en CSS para mantener los estilos encapsulados dentro de nuestros componentes.
Con estos conceptos, ya tienes una base sólida para continuar explorando más de Svelte. Recuerda, la práctica y el experimentación son fundamentales en el aprendizaje del desarrollo web. ¡Adelante, y sigue aprendiendo!
Eres el MVP de esta sección del curso xD te copié en todas las clases el array de películas.
Gracias xD
Bueno después de este modulo, mi top fue:
React
Vue
Svelte
:)
Jajajajaja React Js ser el Padre supremo <3
Podemos usar otros, trabajar con otros por temas de la empresa en la que estemos, pero React Js seguira en nuestros corazones.
mi top
React
Angular
Vue
Astro
jeje
En el ejemplo me parece que Svelte es muy parecido a Vue. Ustedes qué opinan?
Sí, es parecido, entonces este parece que también será fácil de aprender.
Tiene un M, pero se me hace más fácil Vue.
Saludos! Así es como hice un componente independiente para los botones:
<script>exportlet initialValue =0;exportlet maxValue ;//Por defecto el contador comienza en 0let contador = initialValue;functionaumentar(){ contador++;}functiondisminuir(){ contador--;}</script><button type="button"on:click={disminuir} disabled={contador<=0}>-</button>{contador}/*Hacemos que el botón de aumentar se desactive cuando el contador alcance el valor máximo (que le pasaremos al llamar al componente)*/<button type="button"on:click={aumentar} disabled={contador>=maxValue}>+</button>
Luego al llamar a los botones en el formulario sería de esta manera:
(Realmente no es necesario especificar el initialValue ya que por defecto es 0).
{#each movies as movie}<form><h4>{movie.name}</h4><Buttons initialValue ={0} maxValue={movie.available}/></form>{/each}
Rollup
Es un paquete de módulos para JavaScript que compila pequeños fragmentos de código en algo más grande y complejo, como una biblioteca o aplicación. Utiliza el nuevo formato estandarizado para módulos de código incluidos en la revisión ES6 de JavaScript, en lugar de soluciones idiosincrásicas anteriores como CommonJS y AMD. Los módulos ES le permiten combinar libremente y sin problemas las funciones individuales más útiles de sus bibliotecas favoritas. Esto eventualmente será posible de forma nativa en todas partes, pero Rollup te permite hacerlo hoy.
Para mas información puedes ver acá
Cuando escriban el nombre del componente al importarlo aseguresen de poner la primera letra en mayuscula ya que si usan el nombre
form
les saldra un error por usar el mismo nombre de la etiqueta form de html
Me quedo con ganas de aprender vue, pero en mi pais no hay mucha ofertas de trabajo asi que a react será
Estamos en la misma.
Se pueden aprender ambos, animo!!
Yo me fui por DC, Snyder's cut me gusto mucho.
<script>const movies =[{name:"Avatar",available:5,quantity:0},{name:"Superman man of Steel",available:4,quantity:0},{name:"Batman vs Superman",available:5,quantity:0},{name:"Wonder Woman",available:1,quantity:0},{name:"Acuaman",available:6,quantity:0},{name:"Snyder Cut: Justice Leage",available:10,quantity:0}];</script>{#each movies as movie}<form><h4>{movie.name}</h4><button type="button"on:click={()=> movie.quantity+=1} disabled={movie.quantity>= movie.available}>+</button>{movie.quantity}<button type="button"on:click={()=> movie.quantity-=1} disabled={movie.quantity<=0}>-</button></form>{/each}
Primera vez que veo Svelte y fue como amor a primera vista -
Sobre Svelte muy sencilla la sintaxis me gusto pero si toca elegir me quedo con Vue JS y React a ver en que logro encontrar la oportunidad laboral en mi pais
Pensé que Vue era el framework más fácil y rápido de aprender, pero Svelte me sorprendió más de lo que me esperaba
<script>const movies =[{name:"Avengers",available:5,quantity:0},{name:"Wonder Woman",available:15,quantity:0}];</script>{#each movies as movie}<form><h4>{movie.name}</h4><button type="button"on:click={()=> movie.quantity--} disabled={movie.quantity<=0}>-</button>{movie.quantity}<button type="button"on:click={()=> movie.quantity++} disabled={!(movie.quantity< movie.available)}>+</button></form>{/each}
Hasta el momento está súper genial el curso, me ayudó a decidir que Angular será el primer framework que aprenda:)
Ya que terminamos esta sección de entrar en contexto y conocer algunos Frameworks importantes de JS me gustaría compartirles estas notas. :D
No lo creo. Un enfoque que no se debe perder de vista son los componentes, entonces para crear un componente lo tienes que hacer en un archivo diferente para darle toda la abstracción necesaria.
svelte luce muy facil e intuitivo, me gusto
Me resulta muy interesante Svelte. Me gusta su simpleza
Hasta ahora svelte es la que más me gustó, seguida de cerca por vue :smi