
- Next.js
- React
- Ta'lim
- Boshlanish
Начинаю образовательную платформу с нуля
21
Сегодня я начал работу над образовательной платформой. Создал пустой проект на Next.js и сразу столкнулся с вопросом: как строить страницы курсов, модулей и тем?
Самый простой путь — написать отдельную страницу для каждого курса. Но этот путь заканчивается на втором курсе. К третьему я бы уже копировал один и тот же код в третий раз.
Поэтому пошёл другим путём: динамические маршруты. Курс, модуль и тема — все трое стали параметрами в адресе. Когда страница открывается, она запрашивает нужные данные и отрисовывает их на месте.
Здесь появилась первая сложность. Во вложенных динамических маршрутах каждый уровень ждёт свои данные, но приходят они не по порядку. Когда открывалась страница темы, мне нужно было знать и модуль, и курс — иначе кнопка «назад» не понимала, куда возвращаться.
Решение оказалось простым: каждый уровень запрашивает свои данные сам и не зависит от уровня выше. Медленнее, зато код гораздо понятнее. Скорость можно добавить позже, а запутанный код исправлять трудно.
К концу дня на платформе был ровно один курс, но чтобы его создать, не понадобилось написать ни одной новой страницы. Добавить второй курс теперь — дело нескольких минут.