Метод navigate является одним из ключевых инструментов
библиотеки Navigo, предназначенной для управления
маршрутизацией в одностраничных приложениях на JavaScript. Он позволяет
программно изменять текущий маршрут, инициируя переход на указанный
путь, без необходимости обновления страницы браузера. Это обеспечивает
плавную навигацию и сохранение состояния приложения.
router.navigate(path, [absolute]);
Параметры:
path — строка, представляющая путь маршрута, на
который необходимо перейти. Например: '/home',
'/about', '/users/123'.
absolute (опционально) — булевый параметр,
определяющий, является ли указанный путь абсолютным.
true — путь интерпретируется как абсолютный URL
относительно корня сайта.false или отсутствует — путь интерпретируется
относительно текущего маршрута.Метод navigate используется для перехода на новые
маршруты без перезагрузки страницы. Например:
router.navigate('/dashboard');
Этот вызов изменяет URL на /dashboard и автоматически
вызывает обработчики маршрутов, зарегистрированные через
router.on().
Navigo позволяет передавать параметры через URL. Метод
navigate корректно работает с параметризованными
маршрутами. Пример:
router.on('/users/:id', (params) => {
console.log(params.id);
});
router.navigate('/users/42'); // Выведет: 42
Здесь :id является динамическим сегментом маршрута. При
навигации метод автоматически подставляет значение и активирует
соответствующий обработчик.
Использование второго аргумента позволяет управлять интерпретацией пути. Рассмотрим пример:
// Текущий маршрут: /app
router.navigate('settings'); // Переход на /app/settings
router.navigate('/settings', true); // Переход на /settings
absolute путь считается относительным к
текущему маршруту.true путь трактуется как абсолютный, начиная с
корня сайта.Метод navigate совместим с маршрутами, содержащими
опциональные параметры:
router.on('/posts/:id?', (params) => {
console.log(params.id);
});
router.navigate('/posts'); // params.id = undefined
router.navigate('/posts/99'); // params.id = 99
Знак вопроса ? делает параметр необязательным, и метод
navigate корректно обрабатывает оба варианта.
navigate соответствующие маршруты обрабатываются
автоматически.history.pushState, что обеспечивает корректное
использование кнопок «Назад» и «Вперед».new Navigo(root, { hash: true })) метод
navigate автоматически формирует URL с #.const router = new Navigo('/');
router
.on('/home', () => console.log('Главная'))
.on('/about', () => console.log('О сайте'))
.on('/users/:id', (params) => console.log('Пользователь', params.id));
// Программные переходы
router.navigate('/home'); // Выведет: Главная
router.navigate('/about'); // Выведет: О сайте
router.navigate('/users/123'); // Выведет: Пользователь 123
// Абсолютный и относительный путь
router.navigate('users/456'); // Относительно текущего маршрута
router.navigate('/users/456', true); // Абсолютный путь
Метод navigate в Navigo обеспечивает гибкость и мощность
маршрутизации, позволяя строить динамические и интерактивные интерфейсы
с точным контролем над URL и состоянием приложения.
navigate вместо прямого изменения
window.location.href, чтобы сохранить состояние SPA.router.on() с указанием динамических сегментов, чтобы
навигация автоматически передавала параметры в обработчики.absolute для корректного построения
пути.Метод navigate является основным инструментом для
программного управления переходами между маршрутами, обеспечивая
интеграцию с историей браузера, поддержку параметров и плавную работу
одностраничного приложения.