Autor:
    Creación:2026-06-22Última actualización:2026-06-22

    Integración con Vue: Documentación de usePathname

    La función usePathname devuelve la ruta actual (pathname) del navegador con el segmento de la locale eliminado, como un ComputedRef<string> de Vue. Es útil para construir navegación con conocimiento de la locale — por ejemplo, para determinar qué elemento de navegación está activo — sin tener que eliminar el prefijo de la locale manualmente.

    Importar usePathname en Vue

    typescript
    import { usePathname } from "vue-intlayer";
    

    Visión General

    usePathname crea una referencia calculada (computed ref) de Vue que lee window.location.pathname, elimina el prefijo de la locale mediante getPathWithoutLocale y actualiza su valor cada vez que el navegador dispara un evento popstate (navegación atrás/adelante). El valor se puede usar directamente en los templates de Vue o funciones setup.

    Uso

    src/components/NavItem.vue
    <script setup lang="ts">
    import { usePathname } from "vue-intlayer";
    
    const props = defineProps<{
      href: string;
      label: string;
    }>();
    
    const pathname = usePathname();
    </script>
    
    <template>
      <a :href="href" :aria-current="pathname === href ? 'page' : undefined">
        {{ label }}
      </a>
    </template>
    

    Valor de Retorno

    Tipo Descripción
    ComputedRef<string> Referencia calculada de Vue que contiene el pathname actual sin el prefijo de la locale.

    Comportamiento

    • Eliminación de Locale: Remueve el segmento inicial de locale (ej. /es/dashboard/dashboard).
    • Reactivo: Actualiza su valor en cada evento popstate (navegación atrás / adelante en el navegador).
    • Seguro en SSR: Devuelve "" cuando window no está disponible.
    • Limpieza (Cleanup): El event listener de popstate se añade de manera global al inicializar y por lo general no requiere limpieza manual por componente, gracias a cómo Vue maneja el ciclo de vida.

    Ejemplo

    src/components/Sidebar.vue
    <script setup lang="ts">
    import { usePathname } from "vue-intlayer";
    
    const links = [
      { href: "/dashboard", label: "Panel de control" },
      { href: "/settings", label: "Ajustes" },
    ];
    
    const pathname = usePathname();
    </script>
    
    <template>
      <nav>
        <a
          v-for="link in links"
          :key="link.href"
          :href="link.href"
          :style="{ fontWeight: pathname === link.href ? 'bold' : 'normal' }"
        >
          {{ link.label }}
        </a>
      </nav>
    </template>
    

    Relacionado