169 похожих чатов

Коллеги, вопрос по роутеру: если я захожу на сайт вводя в

адресной строке:
site.xyz/city
то на сайте, при генерации ссылок вида
<router-link
v-for="(item, index) in filtersList"
:key="item?.id || index"
class="row no-link text-14-18-6"
:to="item.slug"
>
{{ item.name }}
</router-link>
Ссылки имеют верный адрес
site.xyz/city/router-link

НО!
если я перехожу на адрес
site.xyz/city программной навигацией
router.push({ path: /${params.join('/')}, query: { ...route.query } })

то ссылки генерируются неправильно
site.xyz/router-link

использую SSR и список router-link никак не связан ни с какими параметрами адреса...

может ли это быть из-за SSR - раз данные, по которым генерируются ссылки не меняются от перехода - то и ссылки не пересчитываются?

13 ответов

7 просмотров

Полный путь указывайте

Максим-Юдин Автор вопроса
¿Сергей?
Полный путь указывайте

у меня количесво параметров адреса неизвестно при генерации полного пути и добавлении в конец нового параметра, получается рукцрсия параметров Хочется избежать проверки послежденего параметра на соответствие допустимым... в общем с полным путём как-то не так хорошо работает, как мне бы того хотелось)

1 лучше на каждый роут сделай своё имя и переходи к нему через :to="{name:'some-page'}" 2 у тебя, скорее всего, нет слеша в начале твоего урла в параметре :to=

Максим-Юдин Автор вопроса
ThunderAL
1 лучше на каждый роут сделай своё имя и переходи ...

у меня порядка 1000+ комбинаций параметров роута - это надо 1000+ роутов делать, т.к. приравном числе параметров могут быть разные адресации а вот 2п - скорее всего да

Максим Юдин
у меня порядка 1000+ комбинаций параметров роута -...

{path: '/qwe/:countryId/:cityId', component: ShowCity, name: 'show-city'} в роутер :to="{name: 'show-city', params: {countryId: 123, cityId: 321}}" делает ссылку /qwe/123/321 а в компоненте ShowCity можно получить эти 2 параметра и рендерить что хочешь https://router.vuejs.org/guide/essentials/dynamic-matching.html

Максим-Юдин Автор вопроса
ThunderAL
{path: '/qwe/:countryId/:cityId', component: ShowC...

это я понимаю) у меня может быть как city/street так и region/city и при таком виде параметров их бесполезно именовать - там каша. потому переход по имени роута можно сделать. но надо параметры роута перебирать и смотреть что там в них и убирать лишнее. Хотелось этого избежать)

Максим Юдин
это я понимаю) у меня может быть как city/street т...

воу-воу. скажу сразу: можно забыть о том, чтобы посадить на /<int>/<int> подобный урл несколько компонентов и логик (ну, если айюк города, дома и там же айдюк страны и города. выходит, что /123/123 подходит и туда и туда) сразу можешь забыть -- это тебе уничтожит всю логику и добавит тонны каши но ты можешь сделать ссылки типа /qwe/co123/ci321 и сразу же понятно, что страна 123 и город 321 или /qwe/ci123/h345 -- город 123, дом 345

ThunderAL
воу-воу. скажу сразу: можно забыть о том, чтобы по...

а можно извратиться и сделать собственный парсер этого куска урла: * сделать роут {url: '/qwe/*',component:......} * в компоненте съедать урл, выцелять его последнюю часть, парсить её и рендерить нужный элемент при помощи <component :is="myComponent"> это выходит как мидлвэр для рендеринга после роута)

Максим-Юдин Автор вопроса
ThunderAL
воу-воу. скажу сразу: можно забыть о том, чтобы по...

у меня задача красивый адрес сделать)) каша там есть) это я сделал а сегодня бекенд предоставил хоороший метод, который позволяет вообще не париться о параметрах, и теперь у меня одна задача: научиться добавлять новый параметр для роута, при генерации ссылок на странице, и вот с этим беда получается -генератор списка ссылок не видит изменения параметров и не делает новый рендеринг...

Максим-Юдин Автор вопроса
ThunderAL
а можно извратиться и сделать собственный парсер э...

я в хуке beforeEnter это сделал, в том числе через рекурсивный редирект с перебором параметров до тех пор, пока не найдётся нужная комбинация, чтобы этот роут был нормальным. Там ещё параметры надо с беком сверять, чтобы мусор сразу убирать)))

Максим Юдин
у меня задача красивый адрес сделать)) каша там е...

а. если хочешь трекать изменения, то просто запихни в <router-view :key="$route.fullUrl"/> и всё, оно тебе будет ререндерить весь компонент при смене урла (про имена не уверен, глянь в доке)

Максим Юдин
это я понимаю) у меня может быть как city/street т...

вроде как крутые папки пишут первым "что это такое" а дальше "что оно делает"

Максим-Юдин Автор вопроса
Roman
вроде как крутые папки пишут первым "что это такое...

у мен язадача по адресации - красивый адрес)

Похожие вопросы

Обсуждают сегодня

А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
Добрый день подскажите пожалуйста может кто то сталкивался с ошибками Sentry 22.10.0 развернутым из helm чарт в Kubernetes? Изначально 3 дня назад очень стало много событий ух...
Tire4 Finist Devops
1
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
почому оно не работает?
Vi Chapmann ٩( 💢•̀ з•́)و Chapmann
19
всем привет почти закончил курс После него можно писать свою операционку? Какие библиотеки надо использовать и куда дальше копать для изучения
Linus
19
Так а кто может спарсить всех участников чата? Идишники
Magic
18
Карта сайта