Що таке $router.push?
$router.push - це метод Vue Router, який дозволяє програмно перейти на інший маршрут (іншу "сторінку" в SPA) без перезавантаження сторінки.
Простіше кажучи:
$router.push()- це спосіб навігації через JavaScript, а не через<router-link>.
Де використовується?
- перехід на сторінку після дії користувача
- редирект після логіну
- кнопки типу "Назад", "Далі", "Купити"
- перехід за умовою
- навігація з коду, а не з шаблону
Як використовувати в Options API?
js
this.$router.push('/users')Програмна навігація з об'єктом
Можна передати об'єкт:
js
this.$router.push({ path: '/users' })Навігація за іменем маршруту
Використовується найчастіше:
js
this.$router.push({ name: 'user', params: { id: 10 } })Так надійніше, ніж писати шлях вручну.
Навігація з query-параметрами
js
this.$router.push({
path: '/products',
query: { sort: 'price', page: 2 }
})URL стане:
/products?sort=price&page=2
Як використовувати в Composition API?
Спочатку import:
js
import { useRouter } from 'vue-router'
const router = useRouter()Потім:
js
router.push('/home')або:
js
router.push({ name: 'profile', params: { id: 5 } })Що важливо знати для співбесіди?
1. push додає запис в історію
Після push можна натиснути Back:
router.push('/a')
router.push('/b')Історія: A -> B -> Back поверне в A.
2. Є $router.replace()
Він робить те саме, але не додає запис в історію.
3. Перехід - асинхронний
Можна робити:
js
await router.push('/login')4. Помилка з params без name
Якщо передати params без name:
js
router.push({ params: { id: 10 } }) // помилкаПотрібно обов'язково:
js
router.push({ name: 'user', params: { id: 10 } })Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.