Я создаю одностраничное веб-приложение (потому что мне нужна гибкость и скорость при перемещении по страницам/состояниям), но я борюсь с маршрутизацией/URL-адресами...
В традиционной парадигме у меня были бы такие URL-адреса, как:
example.com/tools/population-tool/#currentYear=1950
example.com/tools/income-tool/#country=usa
example.com/nice-story/
example.com/nice-chapter/nice-story/
Теперь я хотел бы заменить его маршрутизатором (например, с использованием Backbone), который загружает шаблоны и контроллеры для соответствующих маршрутов.
Я думаю о том, чтобы иметь объект страниц, в котором хранится необходимая информация о странице:
pages : {
tools : {
template : "#tools",
breadcrumb : ["Home","Tools"]
}
nice-story : {
template : "#nice-story",
breadcrumb : ["Home","Stories","Nice Story"]
}
}
Теперь с помощью маршрутизатора я хотел бы загрузить правильный контент и состояние страницы, учитывая URL-адрес, например:
example.com/#!/tools/population-tool/?currentYear=1950
или вот так, если не используете Hashbang:
example.com/tools/population-tool/?currentYear=1950
Как бы вы организовали эту маршрутизацию, чтобы схема URL-адресов имела смысл, но при этом оставалась гибкой и допускала перенаправления и новые параметры строки запроса?