-
Notifications
You must be signed in to change notification settings - Fork 1
Closed
Labels
new feature 🆕Новая фича или запрос на нееНовая фича или запрос на нее
Description
Например, хочется скинуть ссылку на преподавателя внутри дубинушки. Нужно, чтобы ссылка вида app.profcomff.com/apps/62/lecturer/123 открывала дубинушку сразу на нужном преподе.
Можно сделать это так:
- при генерации url для миниприложения сделать query вида router="location/sublocation", потом эту строку забирать внутри приложения и отдавать роутеру.
- все ссылки вида /apps/62/... редиректить роутером на /apps/62
Пока сделаем для дубинушки, потом расширим на остальные:
- В роутере нужно прописать редирект, чтобы забирать из URL query, передавать их как props и убирать из ссылки. В данном случае ссылка "sessions/sessions?id=123" перейдет в "sessions", а внутри соответствующего файла можно сделать props = {id: Number}.
{
path: '/apps/12/lecturer', // вместо 12 вставляем id дубины
redirect: to => {
const query = to.query; // забираем параметры из URL
const addPath = to.path.slice(to.path.lastIndexOf('/') + 1); // это кривое решение, но так находим путь
return {
path: '/apps/12',
props: { lecturer: query.lecturer, addPath: addPath }, // передаем в props ссылку на страницу и query
query: {}, // чистим ссылку
};
},
},В случае дубинушки это будет apps/12/lecturer?lecturer?lecturer=123 => apps/62, props: {lecturer: 123, addPath: "lecturer"}
- При генерации ссылки на дубинушку нужно добавить addPath и query. Вместо rating.profcomff.com должно получиться rating.profcomff.com/lecturer?lecturer_id=123.
- Есть вероятность, что это сразу сработает и в дубинушке делать ничего не надо :)
Metadata
Metadata
Assignees
Labels
new feature 🆕Новая фича или запрос на нееНовая фича или запрос на нее
Type
Projects
Status
Done