Существует ли клиентский роутер с парсингом и хранением параметров строки под мои хотелки?
Написал некоторую либу, не хотел бы лезть в описание маршрутизатора с нуля.
Нужна такая либа, которая умеет:
1) принять узел (куда будет аппендится возвращаемый из функций массива роутов узел)
2) принять массив роутов (дальше примерно как в фреймворках)
где первый path с плейсходлерами (пр. /products/:id)
второй component, который по сути вызываемая функция (возможно с прокидыванием как аргумент параметров роута)
Вообщем знаю что хочу найти, найти не могу, писать лень.
Подскажите вдруг работал кто с какой-нибудь самописной темой, знает, видел проходил.
Спасибо
Да, существуют различные клиентские библиотеки JavaScript, которые предоставляют функциональность роутинга, включая парсинг и хранение параметров строки запроса. Некоторые из наиболее популярных библиотек в этой области включают React Router, Vue Router и React-Router-Component.
React Router: React Router - это популярная клиентская библиотека для роутинга в React-приложениях. Она поддерживает динамические маршруты, параметры маршрутов и может использоваться вместе с другими библиотеками, такими как Redux, для управления состоянием приложения.
Vue Router: Vue Router - это официальная библиотека роутинга для фреймворка Vue.js. Она обеспечивает переходы между различными представлениями вашего приложения, управляет параметрами маршрута и поддерживает динамические маршруты.
React-Router-Component: React-Router-Component - это простая библиотека роутинга для React-приложений. Она также поддерживает параметры маршрута и предоставляет удобный интерфейс для создания и настройки маршрутов.
Это всего лишь несколько примеров библиотек, которые могут подойти под ваши требования.
Надеюсь помог
mavirys, нет, мистер чат-гпт, ты нихрена не помог автору вопроса. Ему нужен роутер на ваниле(хз зачем, но это уже другой вопрос).
Никита Кит, если таки выбирать фреймочные роутеры - vue-router вне конкуренции. React\Angular версии по сравниванию с ними просто ад, боль и страдания.
WbICHA, только на вид.
Очень много что там не так. Я проклял всё на свете когда после vue-шного на реактовский перелезал в своё время. В памяти много не отложилось, только боль и страдания. :)
Из того что помню - это то, что useRoute в верхнем компоненте не отражает актуальное состояние маршрута.
Т.е.: Мы находимся в /foo/bar, есть маршрут /foo с компонентом Foo и /foo/bar с компонентом Bar, подчинённым Foo.
Если использовать useRoute в компоненте Foo то выдаст он маршрут /foo, похерен на актуальное состояние дел. Из-за этого для более-менее сложных фич приходится костылять своё говно.
Но это только малая часть, там на каждом шагу я спотыкался, то что в vue-router максимально интуитивно и очевидно, в react-router максимально НЕинтуитивно и НЕочевидно. При этом на первый взгляд выглядят они очень похоже, да. :)
Aetae, кек. Вы просто не поняли принцип иммутабельности реакта) Конечно же там совсем другой роутер. По сути он провайдер, использующий единый стейт и локальный. А с функционалкой довольно просто накосячить. Когда каждое обновление вызывает реакцию с перечиткой инструкций функций компонентов - происходящее в реально сложном проекте превращается в хаос.
Даже когда знаешь как на нём писать и как он работает, не сильно проще становится. Если lcp и производительность - не краеугольный камень - можно принебречь и использовать вью. Он неплох, но не во всём. Новый тоже рулит в сторону ФП, реализовали функциональные компоненты, хуки во vue 3.
Я резисчу это нездоровое движение. Мне было очень хорошо с ООП, если все остальные решили расстаться, я не решил. Я в работе 8 лет, в целом могу добиться высокой производительности своей реализацией.
Она пока не готова и далеко не идеальна, но я стараюсь точить этот алмаз регулярно
Никита Кит, производительность vue будет в 99% случаев выше чем в реакте. Просто потому что система рективности vue построена так, что рендер происходит тогда и исключительно тогда, когда есть изменения, и только там где надо. В реакте, в теории, можно добиться производительности выше, если идеально руками расставить memo, useMemo и использовать прочие best practice. Реально же я такого никогда не видел, и не думаю что увижу. :)
А про ООП и фунциональщину согласен. Сам использую допиленный vue-class-component для vue 3 и с грустью смотрю на эти веяния. Хотя иногда для простеньких вещей и использую script setup.