Для быстрого старта с Page.js можно использовать
CDN. Это позволяет подключить библиотеку без установки дополнительных
пакетов и настройки сборщика модулей. Достаточно добавить следующий тег
<script> в HTML-файл:
<script src="https://unpkg.com/page/page.js"></script>
После подключения объект page становится доступен
глобально. Этот способ удобен для небольших проектов и прототипов, где
не требуется модульная структура.
Для проектов, использующих сборщики модулей (Webpack, Vite, Parcel и др.), предпочтительнее устанавливать библиотеку через npm:
npm install page
Или через Yarn:
yarn add page
После установки можно импортировать Page.js в проект следующим образом:
import page from 'page';
или при использовании CommonJS:
const page = require('page');
После подключения библиотеки необходимо инициализировать маршруты. Page.js использует подход, основанный на определении маршрутов и привязке обработчиков к ним:
page('/', () => {
console.log('Главная страница');
});
page('/about', () => {
console.log('О странице "О нас"');
});
page();
Ключевой момент: вызов page() в конце инициализирует
роутер и запускает обработку текущего URL. Без этого маршруты работать
не будут.
Page.js использует History API браузера для управления навигацией без перезагрузки страницы. Это позволяет:
Для корректной работы достаточно, чтобы сервер отдавал один и тот же HTML-файл для всех маршрутов, иначе при прямом переходе на вложенный путь возникнет ошибка 404.
Для автоматической работы с <a>-тегами необходимо
использовать метод page() в обработчике события
click:
page('*', (ctx, next) => {
document.querySelectorAll('a').forEach(link => {
link.oncl ick = (e) => {
e.preventDefault();
page(link.getAttribute('href'));
};
});
next();
});
Однако в большинстве случаев Page.js перехватывает клики по ссылкам автоматически, если они ведут на внутренние маршруты приложения.
При использовании сборщиков модулей важно учитывать порядок импорта и инициализации:
page.page() для запуска маршрутизации.Пример корректной структуры файла:
import page from 'page';
import homeView from './views/home.js';
import aboutView from './views/about.js';
page('/', homeView);
page('/about', aboutView);
page();
Такой подход позволяет организовать проект в виде модульной архитектуры, где каждая страница или компонент имеет отдельный файл.
Чтобы убедиться, что Page.js подключен корректно:
page.page('/some-path') должна выполняться
соответствующая функция маршрута.Page.js можно подключать через CDN для быстрого
прототипирования или устанавливать через npm/yarn для модульных
проектов. Инициализация маршрутов и вызов page()
обязательны для работы роутера. Библиотека использует History API для
управления URL и поддерживает модульную структуру, что делает её удобной
для современных SPA-приложений.