Saltar al contenido principal

Visión general de Svelte.

Svelte es un moderno framework de JavaScript que te permite construir interfaces de usuario (UI) compilando tu código en tiempo de construcción. A diferencia de otros frameworks como React o Angular, que se basan en un DOM virtual y realizan actualizaciones en tiempo de ejecución. En cambio, Svelte convierte tu código en JavaScript altamente eficiente que manipula directamente el DOM, lo que resulta en aplicaciones más rápidas y eficientes.

Historia de Svelte

Svelte fue creado por Rich Harris y lanzado por primera vez en 2016. Fue diseñado para abordar las limitaciones de los frameworks tradicionales y proporcionar una forma más eficiente de construir aplicaciones web. Desde su lanzamiento, Svelte ha ganado popularidad entre los desarrolladores debido a su simplicidad, rendimiento y tamaño de paquete reducido.

Características de Svelte

  1. Sintaxis declarativa: Svelte utiliza una sintaxis declarativa para describir los componentes de la interfaz de usuario, lo que facilita la comprensión y el mantenimiento de tu código.

  2. Vinculaciones reactivas: Svelte proporciona vinculaciones reactivas que te permiten crear componentes de interfaz de usuario dinámicos y receptivos. Puedes vincular variables y expresiones a elementos, y se actualizan automáticamente cada vez que cambian los datos subyacentes.

    <script>
    let count = 0;
    </script>

    <button on:click={() => count += 1}>
    Se ha hecho clic {count} veces
    </button>

    En el ejemplo anterior, la variable count está vinculada al contenido de texto del botón. Cada vez que se hace clic en el botón, la variable count se incrementa y el texto se actualiza en consecuencia.

  3. Arquitectura basada en componentes: Svelte promueve una arquitectura basada en componentes, lo que te permite crear componentes de interfaz de usuario reutilizables. Los componentes pueden tener su propio estado, propiedades y métodos del ciclo de vida.

    <script>
    export let name;
    </script>

    <h1>¡Hola {name}!</h1>

    En este ejemplo, la propiedad name se pasa al componente y se representa dentro de la etiqueta <h1>.

  4. CSS localizado: Svelte admite CSS localizado, lo que significa que los estilos definidos dentro de un componente solo se aplican a ese componente. Esto evita conflictos de estilos entre diferentes componentes.

    <style>
    h1 {
    color: blue;
    }
    </style>

    <h1>¡Hola Svelte!</h1>

    Los estilos CSS definidos dentro de la etiqueta <style> solo se aplicarán a la etiqueta <h1> dentro del mismo componente.

  5. Animación: Svelte ofrece soporte incorporado para animaciones. Puedes animar fácilmente elementos utilizando keyframes, transiciones y propiedades CSS.

    <script>
    let visible = false;
    </script>

    <button on:click={() => visible = !visible}>
    Alternar
    </button>

    {#if visible}
    <div transition:fade>
    Este elemento se desvanece
    </div>
    {/if}

    En este ejemplo, el elemento <div> se desvanece cada vez que se hace clic en el botón. La directiva transition:fade maneja la animación.

  6. Renderizado en el servidor: Svelte admite el renderizado en el servidor (SSR), lo que te permite renderizar tus componentes en el servidor y enviar HTML al cliente. Esto mejora el rendimiento y la optimización para los motores de búsqueda (SEO).

Ejemplos de Svelte

  1. Lista de tareas: Aquí tienes un ejemplo de una lista de tareas simple utilizando Svelte:

    <script>
    let todos = [];
    let newTodo = '';

    function addTodo() {
    todos = [...todos, newTodo];
    newTodo = '';
    }
    </script>

    <input bind:value={newTodo} placeholder="Agregar una nueva tarea">
    <button on:click={addTodo}>Agregar</button>

    {#each todos as todo}
    <div>{todo}</div>
    {/each}

    Este código te permite agregar nuevas tareas a la lista. El array todos contiene la lista de tareas y la función addTodo se llama cuando se hace clic en el botón "Agregar".

  2. Galería de imágenes: Aquí tienes un ejemplo de una galería de imágenes utilizando Svelte:

    <script>
    let images = ['imagen1.jpg', 'imagen2.jpg', 'imagen3.jpg'];
    let currentIndex = 0;

    function nextImage() {
    currentIndex = (currentIndex + 1) % images.length;
    }
    </script>

    <img src={images[currentIndex]} alt="Imagen de la galería">
    <button on:click={nextImage}>Siguiente</button>

    Este código muestra una imagen del array images y te permite recorrer las imágenes utilizando el botón "Siguiente".

Puedes encontrar más ejemplos y documentación detallada en el sitio web oficial de Svelte: https://svelte.dev/

Svelte ofrece una forma poderosa y eficiente de construir aplicaciones web. Su sintaxis declarativa, vinculaciones reactivas y arquitectura basada en componentes lo convierten en una opción popular entre los desarrolladores. Con su enfoque en el rendimiento y la simplicidad, Svelte ofrece una excelente alternativa a los frameworks de JavaScript tradicionales.