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 ответов

18 просмотров

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

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

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

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
вроде как крутые папки пишут первым "что это такое...

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

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Карта сайта