Author:
    Creation:2025-08-23Last update:2025-08-23

    useRewriteURL Composable

    Vue 3 рдХреЗ рд▓рд┐рдП useRewriteURL composable рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдкрд░ рд╕реНрдерд╛рдиреАрдпрдХреГрдд URL рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рд╡рд░реНрддрдорд╛рди locale рдФрд░ intlayer.config.ts рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ URL рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрд╕рдХреА "pretty" рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╡рд░реНрдЬрд╝рди рдореЗрдВ рд╕рд╣реА рдХрд░ рджреЗрддрд╛ рд╣реИред

    рдпрд╣ window.history.replaceState рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрдирдЪрд╛рд╣реА Vue Router рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред

    рдЙрдкрдпреЛрдЧ

    рдЕрдкрдиреЗ setup() рдлрд╝рдВрдХреНрд╢рди рдпрд╛ <script setup> рдХреЗ рднреАрддрд░ рдЗрд╕ composable рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред

    vue
    <script setup>
    import { useRewriteURL } from "vue-intlayer";
    
    // рдпрджрд┐ рдХреЛрдИ рд░реА-рд░рд╛рдЗрдЯ рдирд┐рдпрдо рдореМрдЬреВрдж рд╣реИ рддреЛ рдПрдбреНрд░реЗрд╕ рдмрд╛рд░ рдореЗрдВ /fr/tests рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ /fr/essais рдореЗрдВ рд╕рд╣реА рдХрд░реЗрдВ
    useRewriteURL();
    </script>
    
    <template>
      <router-view />
    </template>
    

    рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

    1. рд░рд┐рдПрдХреНрдЯрд┐рд╡ рдореЙрдирд┐рдЯрд░рд┐рдВрдЧ: рдпрд╣ composable рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА locale рдкрд░ рдПрдХ watch рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
    2. рд░реАрд░рд╛рдЗрдЯ рдорд┐рд▓рд╛рди: рдЬрдм рднреА locale рдмрджрд▓рддрд╛ рд╣реИ (рдпрд╛ mount рдкрд░), рдпрд╣ рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди window.location.pathname рдХрд┐рд╕реА canonical route рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдмреЗрд╣рддрд░ рджрд┐рдЦрдиреЗ рд╡рд╛рд▓рд╛ рд╕реНрдерд╛рдиреАрдпрдХреГрдд alias рд╣реИ рдпрд╛ рдирд╣реАрдВред
    3. URL рд╕реБрдзрд╛рд░: рдпрджрд┐ рдХреЛрдИ рдмреЗрд╣рддрд░ alias рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ composable рдкрддреЗ рдХреА рдкрдЯреНрдЯреА рдХреЛ рдкреЗрдЬ рд░реАрд▓реЛрдб рдХрд┐рдП рдмрд┐рдирд╛ рдпрд╛ router state рдЦреЛрдП рдмрд┐рдирд╛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП window.history.replaceState рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред

    рдЗрд╕реЗ рдХреНрдпреЛрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ?

    • SEO рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди: рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрдЪ рдЗрдВрдЬрди рдЖрдкрдХреА URLs рдХреЗ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╕реНрдерд╛рдиреАрдпрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЗрдВрдбреЗрдХреНрд╕ рдХрд░реЗрдВред
    • рдмреЗрд╣рддрд░ UX: рдореИрдиреНрдпреБрдЕрд▓реА рджрд░реНрдЬ рдХрд┐рдП рдЧрдП URLs рдХреЛ рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ рдирд╛рдордХрд░рдг рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реБрдзрд╛рд░рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, /fr/a-propos рдХреЗ рдмрдЬрд╛рдп /fr/about)ред
    • рдХрдо рдУрд╡рд░рд╣реЗрдб: рдмрд┐рдирд╛ component lifecycles рдпрд╛ navigation guards рдХреЛ рдкреБрдирдГ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдП, URL рдХреЛ рд╢рд╛рдВрддрд┐рдкреВрд░реНрд╡рдХ рдЕрдкрдбреЗрдЯ рдХрд░рддрд╛ рд╣реИред