useLinkStatus
El hook useLinkStatus
te permite rastrear el estado pendiente de un <Link>
. Puedes usarlo para mostrar retroalimentación visual en línea al usuario (como spinners o efectos de texto) mientras se completa la navegación a una nueva ruta.
useLinkStatus
es útil cuando:
- La precarga (prefetching) está deshabilitada o en progreso, lo que significa que la navegación está bloqueada.
- La ruta de destino es dinámica y no incluye un archivo
loading.js
que permitiría una navegación instantánea.
Importante:
useLinkStatus
debe usarse dentro de un componente descendiente de un componenteLink
- El hook es más útil cuando se establece
prefetch={false}
en el componenteLink
- Si la ruta enlazada ha sido precargada, se omitirá el estado pendiente
- Al hacer clic en múltiples enlaces rápidamente, solo se muestra el estado pendiente del último enlace
- Este hook no es compatible con el Pages Router y siempre devolverá
{ pending: false }
Parámetros
useLinkStatus
no recibe ningún parámetro.
Valores devueltos
useLinkStatus
devuelve un objeto con una sola propiedad:
Propiedad | Tipo | Descripción |
---|---|---|
pending | boolean | true antes de actualizar el historial, false después |
Ejemplo
Indicador de carga en línea
Es útil agregar retroalimentación visual que indique que la navegación está ocurriendo en caso de que el usuario haga clic en un enlace antes de que se complete la precarga.
Manejo elegante de navegación rápida
Si la navegación a una nueva ruta es rápida, los usuarios pueden ver un destello innecesario del indicador de carga. Una forma de mejorar la experiencia del usuario y solo mostrar el indicador de carga cuando la navegación tarda en completarse es agregar un retraso inicial en la animación (por ejemplo, 100ms) y comenzar la animación como invisible (por ejemplo, opacity: 0
).
Versión | Cambios |
---|---|
v15.3.0 | Se introdujo useLinkStatus . |