Как организовать vue router в приложении с модальными окнами?
Суть в том, что половина страниц в проекте должны быть модальными окна, которые открываются по верх той страницы, на которой его открыли.
Вопрос заключается в том как организовать роутинг.
Модальные окна должны иметь свой url и если по нему перешли без истории то открывается базовая страница с окном поверх.
То есть есть страница заметок, в ней открыли заметку, модальное открылось поверх страницы заметок. В заметке указан товар. Нажали товар и открылся товар в модальном окне поверх этого.
Вообщем любое количество модальных окон с роутингом нужна.
При закрытии по истории возвращаем на предыдущую иначе на базовую
Возможно кто то сталкивался и может подтолкнуть в нужном направлении, 4 день перебираю варианты, не получается. Возможно есть что то проще, может какой то пакет готовый.
затем работаем, например кликаю на пункт меню - вызываю вот такую функцию: router.navigate(this.getAttribute('href'));
у тебя - добавлять в адрес вызываемое окно (якорем или GET-парамером пофиг) и ловить этот параметр в скрипте, дальше дело техники
Поскольку при переходе по ссылке что-то еще должно быть под модальным окном, то тут, скорее всего подойдут вложенные маршруты. Ну или в query "родительского маршрута" передавать признак открытия диалога и пробрасывать его в props или повесить watch на '$route.query.Признак'.
Чтобы вложенные маршруты работали так, чтобы любое модальное окно открывалось на любой статической странице будет сгенерированно куча роутов. Думаю этот способ не подойдёт.
Можно подробней, пожалуйста?
ну тут зависит от вашей фантазии. вообще если роуты динамические, то добавить child к каждому роуту, если через route.query, то не надо, но больше кода в каждом компоненте.