Маршрутизатор — это часть программного обеспечения, которое управляет поведением вашего пользовательского интерфейса при изменении URL-адреса. Это касается как веб-сайтов, так и нативных приложений. Всякий раз, когда вы входите в определенную часть всей структуры веб-приложения или взаимодействуете с ней, чтобы перейти куда-то еще, URL-адрес меняется. Однако вы действительно хотите полностью загружать новую страницу каждый раз при изменении URL-адреса? Сомневаюсь.

Зачем строить «атомную станцию» для решения простой проблемы?

Когда мы переписывали всю кодовую базу Avocode с Angular.js на React.js, мы знали, что нам нужен один универсальный роутер. Под универсальным я подразумеваю один как для веб, так и для нативного приложения.

Решение было, но…

Решение называется React Router. Когда вы смотрите на его код, кажется, что он должен управлять атомной электростанцией, а не приложением на основе Электрона. Кроме того, API меняется каждые полгода или около того без особой поддержки предыдущих версий. Представьте, что вы создаете свое приложение с одним маршрутизатором, а затем вам приходится менять его каждый раз, когда меняется маршрутизатор. Проще говоря, мы не могли пойти на такой риск. Вместо того, чтобы использовать сложную библиотеку, полную хаков с более чем 10 000 строк, мы написали свою собственную с 200 строками.

Результат?

Мы создали действительно универсальный React Router для Интернета и приложений Electron или nw.js, которые мы постоянно поддерживаем. Основное отличие от стандартных маршрутизаторов заключается в том, что он может изменять только определенные компоненты на основе данных, которые вы извлекаете. И последнее, но не менее важное: когда вы подключаете его к React, он просто работает. Однако имейте в виду, что интерфейс API еще не доработан и, вероятно, будет меняться до версии 1.0.

Узнайте больше и получите на GitHub

Пока вы это делаете, расскажите нам, что вы думаете. Мы будем рады вашим отзывам.

Avocode – это инструмент для передачи и проверки дизайна для команд, которые создают проекты нового поколения для Интернета, iOS и Android.