vue-router-best-practices
Применение лучших практик Vue Router
متاح أيضًا من: github.com/vuejs-ai
Охранники навигации и шаблоны жизненного цикла Vue Router часто вызывают ошибки, которые трудно отладить. Этот скилл предоставляет проверенные решения для распространённых задач Vue Router 4, включая реализацию охранников, изменение параметров маршрута и очистку компонентов.
تنزيل ZIP المهارة
رفع في Claude
اذهب إلى Settings → Capabilities → Skills → Upload skill
فعّل وابدأ الاستخدام
اختبرها
استخدام "vue-router-best-practices". Как обрабатывать изменение параметров маршрута так, чтобы мой компонент корректно обновлялся?
النتيجة المتوقعة:
- По умолчанию изменение параметров маршрута не перезапускает охранники навигации в Vue Router 4.
- Чтобы обработать изменение параметров:
- 1. Используйте компонент onBeforeRouteUpdate или хук обновления
- 2. Наблюдайте за параметрами маршрута и повторно получайте данные
- 3. Используйте изменения ключа на router-view: <router-view :key="$route.fullPath" />
استخدام "vue-router-best-practices". Каков правильный способ использования охранника beforeRouteEnter?
النتيجة المتوقعة:
- Охранник beforeRouteEnter выполняется до создания компонента, поэтому 'this' не определён.
- Используйте обратный вызов next(vm) для доступа к экземпляру компонента после его создания:
- beforeRouteEnter(to, from, next) {
- next(vm => { vm.someProperty = 'value' })
- }
- Для Vue 3 с composition API рассмотрите использование onBeforeRouteUpdate или onBeforeRouteLeave вместо.
التدقيق الأمني
آمنThis is a documentation-only skill containing reference guides for Vue Router 4 best practices. All static findings are false positives caused by the analyzer detecting code examples within markdown documentation files. The 'external_commands' detections are backtick-delimited code blocks in documentation, not shell execution. The 'network' detections are hardcoded documentation URLs. The 'scripts' detections are import() syntax in code examples. No executable code exists that could pose security risks.
درجة الجودة
ماذا يمكنك بناءه
Исправление ошибок охранников навигации
Отладка и исправление распространённых проблем охранников навигации Vue Router, таких как отсутствие срабатывания охранников при изменении параметров или бесконечные циклы перенаправления.
Изучение правильных паттернов охранников
Понимание корректного способа реализации охранников навигации, включая асинхронные операции и доступ к жизненному циклу компонента.
Управление жизненным циклом маршрута
Корректная обработка переходов между маршрутами, включая очистку прослушивателей событий, подписок и состояния компонента.
جرّب هذه الموجهات
Мой охранник навигации Vue Router не срабатывает, когда я перехожу между одним и тем же маршрутом с разными параметрами. Компонент не обновляется. Как это исправить?
Мне нужно получить доступ к экземпляру компонента в моём охраннике beforeRouteEnter для задания данных, но 'this' недоступен. Каков правильный паттерн для Vue Router 4?
Как правильно использовать async/await в охраннике навигации Vue Router для получения данных перед разрешением навигации? Что произойдёт, если запрос не удастся?
Мой охранник навигации продолжает перенаправлять пользователей в бесконечный цикл. Как определить и предотвратить этот паттерн в Vue Router 4?
أفضل الممارسات
- Используйте хуки onBeforeRouteUpdate и onBeforeRouteLeave для обработки изменений маршрута на уровне компонента вместо reliance solely на охранники навигации
- Всегда возвращайте Promise или используйте обратный вызов next() в охранниках для обеспечения правильного управления потоком навигации
- Очищайте подписки, таймеры и прослушиватели событий в onBeforeRouteLeave для предотвращения утечек памяти
تجنب
- Использование устаревшей функции next() в Vue Router 4 — используйте return promises или флаги bool вместо
- Зависимость от beforeRouteEnter для доступа к состоянию компонента — используйте хуки composition API вместо
- Не обработка ошибок API в асинхронных охранниках навигации, что может оставить пользователей висеть на экранах загрузки
الأسئلة المتكررة
Почему мой охранник навигации не срабатывает при изменении параметров?
Как получить доступ к данным компонента в охраннике beforeRouteEnter?
Что вызывает бесконечные циклы перенаправления в Vue Router?
Как правильно очиститься при уходе с маршрута?
Должен ли я использовать охранники навигации или хуки жизненного цикла компонента?
Каков аналог устаревшей функции next() в Vue Router 4?
تفاصيل المطور
بنية الملفات
📄 router-beforeenter-no-param-trigger.md
📄 router-beforerouteenter-no-this.md
📄 router-guard-async-await-pattern.md
📄 router-navigation-guard-infinite-loop.md
📄 router-navigation-guard-next-deprecated.md
📄 router-param-change-no-lifecycle.md
📄 router-simple-routing-cleanup.md
📄 router-use-vue-router-for-production.md
📄 SKILL.md