По какому принципу проектируются пути роутера в крупных spa приложениях?
По какому принципу проектируются пути роутера в крупных spa приложениях?
Делаю интернет-магазин на nuxt.js и столкнулся с тем что у меня нет четкого понимания как проектировать маршруты. Например есть страница продукта и кажется вариантов проектирования роута есть масса, например:
- /product?id={id продукта}
- /product/{id продукта}
- /product/{название продукта}
- /category/{название категории}/{название продукта}
- /{название категории}/{название продукта}
- ... и так далее
Возможно посоветуете какие либо обучающие материалы по этой теме?
1. Лучше всего использовать ЧПУ, на бэкэнде должен быть у каждого товара\раздела slug.
2. /category/{название категории}/{название продукта} В таком случае у вас может быть несколько маршрутов для одного и того же товара, например:
/category/{slug категория 1}/{название продукта}
/category/{slug категория 2}/{название продукта}
Будет не здорово.
удобнее было бы следовать единым соглашениям во фронтенде и бекенде, нп. JSON API routing или что-то очень похожее на него в стиле соглашений по рест апи
Товар может лежать в двух-трех категориях. Например, карта MicroSD может относиться к компьютерным комплектующим и также, например, к аксессуарам для фотоаппаратов. Да и сами категории могут меняться по ходу деятельности конторы, а ссылки лучше оставлять статичными на товар чем на категорию.
Sanes, Как зачем? ЧПУ раньше неплохо сказывалось на поисковой оптимизации. Да и удобно когда по URL можно знать что за ним скрывается. ЧПУ делается для человека, а id - для скорости выборки БД.
Sanes, так реализовано во всех крупных интернет-магазинах которые я знаю.
Обратите внимание! Присутствует и slug, а в конце ссылки - id для того, чтобы БД не нагружать бесполезной работой.