En esta colección vamos a publicar las librerías para implementar el routing en aplicaciones SPA Javascript. Vamos a ver cuáles son los más populares, a modo de comparativa, para ayudar a seleccionar un sistema de routing que se adapte a las necesidades de los proyectos.
Navigo
Un enrutador de JavaScript minimalista de aproximadamente 10KB. Ofrece todo lo que necesitas para proyectos básicos y medos y funciona muy bien. Es simple, pero ofrece una API potente y flexible.
No tiene dependencias con otros proyectos, por lo que podrás mantener tu js bastante reducido y controlado.
Universal Router
Es una biblioteca de enrutamiento agnóstica al framework que ofrece un enfoque de estilo "middleware" como Express y Koa. Puede usarse tanto en el frontend como en el backend. Permite definir el routing con el estilo imperativo y declarativo y además las rutas son objetos planos Javascript, por lo que se pueden manejar bien en términos de programación.
Es bastante ligera, con una sola dependencia con "path-to-regexp".
Es bastante potente para el manejo de rutas con parámetros y rutas anidadas. Es una buena opción si necesitas algo ligero con un enfoque basado en estándares web.
Ha recibido actualizaciones frecuentes y recientes, por lo que se observa que está bastante vivo el proyecto.
Nuxt.js Router
Su enfoque es muy similar a Next.js pero para aplicaciones desarrolladas con Vue.js.
La ventaja de usar el sistema de routing de Nuxt.js es que puedes realizar tu sistema de routing basado en archivos, sin código, lo que simplifica la creación de rutas y la estructura de las aplicaciones.
Puedes usar Nuxt.js para aplicaciones SPA, SSR o SSG.
app-tools
No es un sistema de routing sino una serie de componentes para poder realizar funcionalidades de aplicaciones modernas de Javascript, lo que incluye un router, gestión del estado, trabajo con service workers y otras cosas.
No es una librería especialmente conocida pero destaca por su sencillez y practicidad.
Page.js
Es una biblioteca de enrutamiento inspirada en la API de Express (package de Node.js) pero diseñada para el navegador. Es pequeña, tiene una API simple y es fácil de integrar con cualquier proyecto.
Dentro de las librerías de Javascript para routing, que no están basadas en ningún framework, es la más popular en estrellitas de GitHub, aunque actualmente tiene menos descargas que otras alternativas.
Su último update en el repositorio de GitHub tiene bastante tiempo. Hay otras alternativas con actualizaciones más frecuentes.
Vaadin Router
Es un enrutador independiente del framework que se puede utilizar con cualquier proyecto web. Desarrollado por una conocida empresa llamada Vaadin que tiene bastante participación en los proyectos de Web Components.
Vaadin Router está diseñado para trabajar bien con librerías como Lit y Web Components. Por supuesto funcionará bien en muchas otras librerias como Polymer, SkateJS o Stencil.
Utiliza una sintaxis para las rutas también inspirada el el framework Express de NodeJS.
qs
Esta no es una librería de routing propiamente dicha pero podría ayudarte a construir una o a aplicar a tu Javascript ciertas funcionalidades para el manejo de parámetros.
Es una herramienta bastante usada en JavaScript para analizar y formatear cadenas de consulta de URL (Query Strings). Permite una manipulación y la interpretación de las cadenas de consulta, lo que es especialmente útil cuando se trabaja con datos complejos y estructurados que necesitan ser serializados en la URL o cuando se analizan los parámetros de la URL en aplicaciones web.
Puedes implementarla para aplicaciones web del lado del cliente o del servidor con Node.js.
https://github.com/ljharb/qs
React Router
React Router es una de las bibliotecas de enrutamiento más populares, específica para proyectos React. Ofrece una amplia gama de utilidades que permiten manejar el enrutamiento en aplicaciones de una sola página (SPA), incluyendo enrutamiento dinámico, lazy load de componentes, y navegación programática.
Vue Router
Vue Router es el sistema de enrutamiento oficial para Vue.js. Como está profundamente integrado con Vue.js es recomendable solamente para este framework. Permite construir aplicaciones SPA con enrutamiento avanzado, anidamiento de rutas, y manejo de estado de las rutas.
Angular Router
Angular Router forma parte del framework Angular y está integrado de casa en las aplicaciones desarrolladas con él.
Angular Router es una solución de enrutamiento muy potente y completa que soporta enrutamiento basado en componentes, carga perezosa, y mucho más. Está diseñado para trabajar de manera cohesiva con el resto del ecosistema de Angular.
Next.js Router
Next.js es un framework basado en React. Tiene por su puesto su sistema de enrutamiento, pero que facilita mucho la vida con respecto al que ofrece React Router. Está basado en archivos y es muy configurable, de una manera prácticamente inmediata, sin tener que lidiar con código.
Es una parte integral del framework para construir aplicaciones React, muy popular para aplicaciones desarrolladas con esta librería y se integra tanto para el lado del servidor como para el cliente, incluso la generación estática de sitios.