Маршрутизация - это способ организации и управления состояниями приложений. Рамка маршрутизации в JavaScript помогает вам изменить состояние приложения - возможно, перейдя от одной секции админ-панели к другой, сохраняя при этом постоянство приложения .
Если вы хотите перейти из одного состояния приложения, например. /admin/users
, другому, например. /admin/orders
, вы можете использовать обычную ссылку, как вы предлагаете. Но тогда вы собираетесь заставить браузер перемещаться с одной страницы HTML на другую. Это, очевидно, обычный способ навигации по сети. Но в приложении JavaScript это довольно неэффективно!
Если вы используете сложное приложение в браузере в JavaScript, тогда это приложение должно выполнять большую работу, когда оно запускается. Он регистрирует обработчики событий, загружает и выполняет кучу JavaScript, и иногда визуализирует весь интерфейс страницы динамически (в случае ExtJS и нескольких других библиотек). Это много дополнительной работы для браузера, чтобы настроить приложение JavaScript на /admin/orders
, что имеет много общего с тем, что находится на /admin/users
. Более эффективный способ заключается в том, чтобы ссылка запускала событие, которое приложение отслеживает, и приложение реагирует, изменяя состояние приложения - возможно, удаляя или скрывая просмотр пользователей и заменяя его представлением заказов. Маршрутизация - это способ представления этих разных интерфейсов, используя токен - обычно фрагмент URL-адреса, такой как /admin/users
- для отслеживания того, где пользователь находится в вашем интерфейсе.
Это позволяет приложению поддерживать динамическую модель объекта, которая уже сожжена и используется для создания памяти. Это ускоряет работу пользовательского интерфейса, и, если вы используете управление историей URL через хэштег или pushState, он позволяет пользователю перемещаться по вашему приложению с помощью кнопок назад и вперед своего браузера, не перезагружая каждый актив на страницы каждый раз и вытирая состояние вашего приложения. Управление URL-адресами также обеспечивает глубокую привязку к какой-либо странице приложения: при загрузке маршрутизатор вашего приложения проверяет строку маршрута, которую он получает, ее токенизирует и загружает интерфейс, указанный вами в таблице маршрутизации.
Маршрутизация не требуется, чтобы управлять сохранением, но это хороший способ организации ваших постоянных состояний. Часто система маршрутизации идет рука об руку с управлением историей URL, например Davis.js. Но есть также библиотеки маршрутизации, которые не конфликтуют с URI, которые поддерживают абстрактное токенированное состояние, которое вы можете использовать или отображать по своему усмотрению, например Crossroads.js.
Превосходно сформулированные. – orbfish