"Implementación de Likes y Stores en Svelte para Pubsstagram"
Clase 23 de 26 • Curso de Svelte
Contenido del curso
- 3

Primeros Pasos con Svelte: Instalación y Configuración Básica
06:51 - 4

Estilos CSS y Variables Globales en Componentes Svelte
07:30 - 5

Creación e Importación de Componentes en Svelt
06:37 - 6

Reactividad en Svelt: Creación de un Contador Interactivo
03:59 - 7

Componentes Svelte: Uso de Propiedades y Valores por Defecto
10:18 - 8

Condicionales y Dark Mode en Componentes Svelte
06:14 - 9

Estructuras de Control en Svelte: Iteración de Arreglos y Componentes
05:59 - 10

Eventos DOM y Binding de Datos en Svelte
10:14 - 11

Manejo del ciclo de vida de componentes en Svelte
08:43 - 12

Reactividad en Svelte: Uso de Stores para Componentes Compartidos
08:14
- 16

Estructuración de Proyectos Svelte: Componentes y Configuración Básica
09:00 - 17

Estructuración de Headers y Sidebars en Aplicaciones Web
11:46 - 18

Estructura de Componente Timeline en Svelte para Pubstagram
13:06 - 19

Estilos CSS para Aplicaciones con Svelte
09:38 - 20

Conexión de Aplicaciones Svelte a APIs Públicas
11:39 - 21

Integración de API para Comentarios en Pubstragram
10:27 - 22

Creación de un Modal para Compartir en Facebook con Svelte
12:23 - 23

"Implementación de Likes y Stores en Svelte para Pubsstagram"
11:51
¿Cómo implementar likes y bookmarks en tu aplicación Svelte?
Integrar funcionalidades como los "likes" o "bookmarks" puede añadir un toque interactivo a cualquier aplicación web, similar a las redes sociales modernas como Instagram. En este artículo, aprenderás cómo implementarlas en una aplicación Svelte, gestionando el estado de forma eficiente con Svelte Store.
¿Cómo configurar variables para like y bookmark?
Iniciaremos añadiendo variables necesarias para los "likes" y "bookmarks". Este proceso implica crear variables booleanas en el archivo Svelte:
let like = false;
let bookmark = false;
Estas variables mantendrán el estado de los "likes" y "bookmarks" para cada publicación.
¿Cómo crear una función para manejar likes?
El siguiente paso es implementar una función que altere el estado de la variable like cuando un usuario interactúa con el botón de corazón.
function handleLike() {
like = !like;
}
Esta función cambia el estado del "like" de false a true o viceversa, similar a como se gestiona en un modal.
¿Cómo aplicar cambios en la interfaz de usuario?
Para reflejar estos cambios en la interfaz de usuario (UI), añade un evento on:click al ícono que desencadena la acción de like:
<icon-heart on:click={handleLike} class:active-like={like}></icon-heart>
La clase active-like se añade dinámicamente cuando like es verdadero, permitiendo modificar estilos en CSS según el estado actual.
¿Cómo implementar bookmarks de manera similar?
Para los bookmarks, se aplica una lógica similar, utilizando una función anónima directamente en el evento on:click.
<icon-bookmark on:click={() => bookmark = !bookmark} class:active-bookmark={bookmark}></icon-bookmark>
Este enfoque muestra cómo implementar funcionalidad sin necesidad de funciones separadas.
¿Cómo crear el efecto de doble clic para likes?
Tal como en Instagram, puedes activar el "like" haciendo doble clic sobre una imagen. Esto se configura utilizando el evento on:dblclick de Svelte:
<figure on:dblclick={handleLike}>
<img src="ruta/a/la/imagen.jpg" alt="Imagen">
</figure>
El doble clic invoca a la misma función handleLike, propiciando un efecto fluido y consistente en la aplicación.
¿Cómo gestionar el estado global con Svelte Store?
Para contar cuántas publicaciones han sido "liked", usa Svelte Store para compartir estado entre componentes.
¿Cómo crear y configurar un Store?
Primero, crea un archivo store.js dentro de una nueva carpeta llamada store. Allí, importa el método writable de Svelte para definir un estado:
import { writable } from 'svelte/store';
export const likeCount = writable(0);
Este store mantiene un contador que se actualiza cada vez que se da o quita un "like".
¿Cómo actualizar el store desde un componente?
Dentro del componente que gestiona los likes, importa el store y actualiza su valor en la función handleLike:
import { likeCount } from '../store/store';
function handleLike() {
if (like) {
likeCount.update(n => n - 1);
} else {
likeCount.update(n => n + 1);
}
like = !like;
}
Con update, incrementas o decrementas el contador según el estado actual de like.
¿Cómo reflejar cambios del store en la UI?
En el componente del header, importa el store para mostrar el contador dinámicamente:
import { likeCount } from '../store/store';
$: displayLikeCount = $likeCount > 0 ? $likeCount : '';
Al usar $ antes del nombre del store, Svelte otorga reactividad, actualizando automáticamente la vista cuando el estado cambia.
Desafío: Subir tu aplicación a un repositorio en línea
Como tarea adicional, se sugiere subir tu aplicación a un repositorio en línea, como GitHub, GitLab o Bitbucket. Esto no solo respaldará tu progreso, sino que también te preparará para futuros despliegues en la nube.
Con estos pasos, tu aplicación ahora ofrece interactividad atractiva y eficiente. ¡Sigue explorando y añadiendo nuevas funcionalidades para mejorar aún más tu proyecto!