Manejo de Eventos en Elementos HTML con SolidJS

Clase 17 de 27Curso de SolidJS

Resumen

¿Cómo gestionar eventos en listas HTML?

En nuestras aplicaciones web, el manejo de eventos es crucial para añadir interactividad a nuestra lista de elementos HTML. Aprenderemos a implementar funcionalidades como eliminar, agregar y editar elementos, utilizando eventos y funciones específicas. A través del uso inteligente de los signals y atributos como onClick y onDoubleClick, optimizaremos la experiencia del usuario mediante la reactividad.

¿Cómo eliminar elementos de una lista?

Para mejorar la gestión de listas HTML, implementar una funcionalidad que permita a los usuarios eliminar elementos es esencial. Este proceso se realiza mediante una función conocida como removeTodo.

  • Crear una copia de la lista existente: Es necesario clonar la lista actual, ya que los valores dentro de los signals no se pueden modificar directamente.
  • Usar splice para eliminar elementos: Esta función permite eliminar el elemento en un índice específico de la lista clonada.
  • Actualizar la lista utilizando setTodos: Al finalizar, se actualiza con la nueva copia sin el elemento eliminado.

Código de ejemplo para eliminar un elemento:

function removeTodo(index) {
    const newTodos = [...todos()]; 
    newTodos.splice(index, 1); 
    setTodos(newTodos);
}

¿Cómo agregar elementos a la lista?

La habilidad de añadir elementos es un aspecto clave de cualquier aplicación interactiva. Para lograrlo, seguimos estos pasos:

  • Configurar un nuevo signal: Creamos un newItem que almacenará el valor del input.
  • Actualizar el valor con el evento input: Utilizamos el atributo value enlazado al signal newItem y un evento input para monitorear los cambios en el input.

Código de ejemplo para agregar un elemento:

function addToDo() {
    if (newItem()) {
        setTodos([...todos(), newItem()]);
        setNewItem('');
    }
}

¿Cómo editar elementos en la lista?

Solid ofrece eventos personalizados como onDoubleClick, lo que facilita la edición directa de elementos.

  • Hacer que un elemento sea editable: Al detectar un doble clic, el elemento se vuelve editable mediante el atributo contentEditable.
  • Utilizar el evento onBlur para guardar los cambios: Cuando el elemento pierde el foco, actualizamos el valor en el array principal.

Código de ejemplo para editar un elemento:

function handleEdit(event, index) {
    event.target.setAttribute("contentEditable", "true");
    event.target.focus();
}

function handleBlur(event, index) {
    event.target.removeAttribute("contentEditable");
    setTodos((todos) => todos.map((todo, idx) => idx === index ? event.target.innerText : todo));
}

¿Qué nos ofrece Solid para eventos?

Solid facilita el trabajo con eventos y ofrece maneras ergonómicas para enriquecer nuestras aplicaciones, como los eventos personalizados. Dominar estos conceptos nos permitirá construir interfaces más dinámicas y reactivas.

Integrar estas funcionalidades hará nuestras listas mucho más intuitivas y atractivas para los usuarios, permitiendo una interacción más fluida y un manejo más natural de los datos. Continúa explorando el mundo de la programación y no te detengas. ¡El potencial de tus aplicaciones es inmenso!