#vue.js #vue-router
#vue.js #vue-router
Вопрос:
По сути, я хочу перенаправить на динамический URL-адрес, что-то вроде: /resource/:id
, но я также хочу одновременно передать некоторые параметры. Я не хочу идти по маршруту строки запроса.
Итак, что-то вроде:
this.$router.push({path: 'resource/' id, params: {
test: "HELLO"
}
});
Свойство передается, когда у меня оно такое (но это неправильный маршрут)
this.$router.push({name: 'resource', params: {
test: "HELLO"
}
});
Возможно ли делать то, что я хочу, или мне нужно начать поиск в VueEx?
Комментарии:
1. Какой ваш желаемый URL?
domain.com/resource/100?test='HELLO'
? Где100
находитсяid
2. Мне не нужна строка запроса. Мне нужен только /resource /100, и тест будет пройден за кулисами.
Ответ №1:
Вы можете сделать это следующим образом:
ваш маршрутизатор:
{
path: '/resource/:id',
name: 'route-name',
component: Component,
props: true,
},
и в вашем компоненте вы можете получить все параметры в качестве реквизита:
props: ['id', 'name', '...'],
если вы хотите вызвать маршрут в router-link, вы можете сделать это следующим образом:
<router-link tag="a" :to="{name: 'route-name', params: {id: 1, name: 'John', ...}}">
Я надеюсь, что это поможет вам.
Комментарии:
1. Я хочу сделать это программно, а не по ссылке (кнопка, на которую нажимает пользователь, должна выполнить вызов ajax перед перенаправлением).
2. Я думаю, что это невозможно. но у вас могут быть некоторые глобальные вычисляемые переменные. задайте их в своем Ajax-вызове, а затем вызовите их в своем целевом компоненте. Если вам нужна помощь в этом, дайте мне знать
Ответ №2:
Я пошел по маршруту VueX и настроил хранилище. Не похоже, что возможно сделать то, о чем я думал изначально.