Skip to content

Прокидывание ссылок внутрь дубинушки #301

@BatuevIO

Description

@BatuevIO

Например, хочется скинуть ссылку на преподавателя внутри дубинушки. Нужно, чтобы ссылка вида app.profcomff.com/apps/62/lecturer/123 открывала дубинушку сразу на нужном преподе.

Можно сделать это так:

  • при генерации url для миниприложения сделать query вида router="location/sublocation", потом эту строку забирать внутри приложения и отдавать роутеру.
  • все ссылки вида /apps/62/... редиректить роутером на /apps/62

Пока сделаем для дубинушки, потом расширим на остальные:

  1. В роутере нужно прописать редирект, чтобы забирать из 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"}

  1. При генерации ссылки на дубинушку нужно добавить addPath и query. Вместо rating.profcomff.com должно получиться rating.profcomff.com/lecturer?lecturer_id=123.
  2. Есть вероятность, что это сразу сработает и в дубинушке делать ничего не надо :)

Metadata

Metadata

Assignees

Labels

new feature 🆕Новая фича или запрос на нее

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions