адресной строке:
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 - раз данные, по которым генерируются ссылки не меняются от перехода - то и ссылки не пересчитываются?
Полный путь указывайте
у меня количесво параметров адреса неизвестно при генерации полного пути и добавлении в конец нового параметра, получается рукцрсия параметров Хочется избежать проверки послежденего параметра на соответствие допустимым... в общем с полным путём как-то не так хорошо работает, как мне бы того хотелось)
1 лучше на каждый роут сделай своё имя и переходи к нему через :to="{name:'some-page'}" 2 у тебя, скорее всего, нет слеша в начале твоего урла в параметре :to=
у меня порядка 1000+ комбинаций параметров роута - это надо 1000+ роутов делать, т.к. приравном числе параметров могут быть разные адресации а вот 2п - скорее всего да
{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
это я понимаю) у меня может быть как city/street так и region/city и при таком виде параметров их бесполезно именовать - там каша. потому переход по имени роута можно сделать. но надо параметры роута перебирать и смотреть что там в них и убирать лишнее. Хотелось этого избежать)
воу-воу. скажу сразу: можно забыть о том, чтобы посадить на /<int>/<int> подобный урл несколько компонентов и логик (ну, если айюк города, дома и там же айдюк страны и города. выходит, что /123/123 подходит и туда и туда) сразу можешь забыть -- это тебе уничтожит всю логику и добавит тонны каши но ты можешь сделать ссылки типа /qwe/co123/ci321 и сразу же понятно, что страна 123 и город 321 или /qwe/ci123/h345 -- город 123, дом 345
а можно извратиться и сделать собственный парсер этого куска урла: * сделать роут {url: '/qwe/*',component:......} * в компоненте съедать урл, выцелять его последнюю часть, парсить её и рендерить нужный элемент при помощи <component :is="myComponent"> это выходит как мидлвэр для рендеринга после роута)
у меня задача красивый адрес сделать)) каша там есть) это я сделал а сегодня бекенд предоставил хоороший метод, который позволяет вообще не париться о параметрах, и теперь у меня одна задача: научиться добавлять новый параметр для роута, при генерации ссылок на странице, и вот с этим беда получается -генератор списка ссылок не видит изменения параметров и не делает новый рендеринг...
я в хуке beforeEnter это сделал, в том числе через рекурсивный редирект с перебором параметров до тех пор, пока не найдётся нужная комбинация, чтобы этот роут был нормальным. Там ещё параметры надо с беком сверять, чтобы мусор сразу убирать)))
а. если хочешь трекать изменения, то просто запихни в <router-view :key="$route.fullUrl"/> и всё, оно тебе будет ререндерить весь компонент при смене урла (про имена не уверен, глянь в доке)
вроде как крутые папки пишут первым "что это такое" а дальше "что оно делает"
у мен язадача по адресации - красивый адрес)
Обсуждают сегодня