Este puede ser un problema realmente simple, pero parece que no puedo encontrar por qué sucede esto. Estoy tratando de desarrollar un SPA en vanilla js usando un paquete web, hasta ahora pude implementar el enrutamiento con el evento hashchange y activar la reproducción. Pero cuando traté de agregar una clase activa al enlace relevante, aunque cuando cambia el hash, no funciona. Pero cuando inicio sesión en la consola, parece que la clase se agregó correctamente, pero en el HTML no se actualiza. ¿Por qué es esto?
este es mi oyente hashchange,
window.addEventListener("hashchange", (e) => { const hash = window.location.hash.replace("#", ""); const view = routes.find((route) => { return route.path == hash; }); const links = document.querySelectorAll(".nav-list--link"); app.render(view.name); links.forEach((l) => { const hashHref = l.getAttribute("href").replace("/#", ""); if (hash === hashHref) { l.classList.add("active"); console.log(l, l.classList); } else { l.classList.remove("active"); console.log(l, l.classList); } }); });Y esta es la salida de la consola,
Este es el HTML,
No entiendo por qué no se actualiza en el HTML si se muestra como actualizado en Javascript