Создание:2025-08-23Последнее обновление:2025-08-23

    Композиционная функция useRewriteURL

    Composable useRewriteURL для Vue 3 предназначен для обработки локализованных перезаписей URL на стороне клиента. Он автоматически корректирует URL в браузере до его «красивой» локализованной версии на основе текущей локали пользователя и конфигурации в intlayer.config.ts.

    Это достигается с помощью window.history.replaceState, что позволяет избежать ненужных навигаций Vue Router.

    Использование

    Вызовите composable внутри функции setup() или в <script setup>.

    <script setup>
    import { useRewriteURL } from "vue-intlayer";
    
    // Автоматически исправляет /fr/tests на /fr/essais в адресной строке, если существует правило перезаписи
    useRewriteURL();
    </script>
    
    <template>
      <router-view />
    </template>

    Как это работает

    1. Реактивный мониторинг: composable устанавливает watch на locale пользователя.
    2. Сопоставление перезаписей: Когда locale изменяется (или при монтировании), он проверяет, соответствует ли текущий window.location.pathname каноническому маршруту, у которого есть более «красивый» локализованный псевдоним.
    3. Коррекция URL: Если найден более «красивый» псевдоним, composable вызывает window.history.replaceState, чтобы обновить адресную строку без перезагрузки страницы и без потери состояния роутера.

    Зачем это нужно?

    • Оптимизация для SEO: Гарантирует, что поисковые системы индексируют авторитетную локализованную версию ваших URL.
    • Улучшенный UX: Исправляет вручную введённые URL, чтобы они соответствовали вашему предпочитаемому именованию (например, /fr/a-propos вместо /fr/about).
    • Минимальные накладные расходы: Тихо обновляет URL без повторного запуска жизненных циклов компонентов или срабатывания navigation guards.