
- Next.js
- React
- Ta'lim
- Boshlanish
O'quv platformasini noldan boshladim
22
Bugun o'quv platformasi ustida ishlashni boshladim. Next.js bilan bo'sh loyiha yaratdim va darhol bir savolga duch keldim: kurslar, modullar va mavzular sahifalarini qanday qurish kerak?
Eng oson yo'l — har bir kurs uchun alohida sahifa yozish edi. Lekin bu yo'l ikkinchi kursdayoq tugaydi. Uchinchi kursda esa bir xil kodni uchinchi marta nusxalab o'tirgan bo'lardim.
Shuning uchun boshqa yo'ldan bordim: dinamik marshrutlar. Kurs, modul va mavzu — uchtasi ham manzildagi parametr bo'ldi. Sahifa ochilganda kerakli ma'lumot so'raladi va shu joyda chiziladi.
Bu yerda birinchi qiyinchilik chiqdi. Ichma-ich joylashgan dinamik marshrutlarda har bir daraja o'zining ma'lumotini kutadi, lekin ular ketma-ket kelmaydi. Mavzu sahifasi ochilganda men modulni ham, kursni ham bilishim kerak edi — aks holda "orqaga" tugmasi qayerga qaytishini bilmasdi.
Yechim oddiy bo'lib chiqdi: har bir daraja o'z ma'lumotini o'zi so'raydi va yuqoridagi darajaga bog'lanmaydi. Sekinroq, lekin kod ancha tushunarli. Keyinchalik tezlashtirish mumkin, chalkash kodni esa tuzatish qiyin.
Kun oxirida platformada bitta kurs bor edi, lekin uni yaratish uchun bitta ham yangi sahifa yozish kerak emas edi. Ikkinchi kursni qo'shish endi bir necha daqiqalik ish.