Remix — React Router kutubxonasini yaratgan jamoa tomonidan ishlab chiqilgan va 2021-yilda ochiq manba sifatida taqdim etilgan React freymvorki. U veb-brauzerlarning asl imkoniyatlariga (formalar, HTTP keshlash) qaytishni targ’ib qiluvchi falsafasi bilan ajralib turadi.
React Router jamoasi tomonidan yaratilishi
Remix’ni Maykl Jekson va Rayan Florens — ko’p yillik React Router loyihasi ustida ishlagan dasturchilar — yaratgan. Ularning marshrutlash sohasidagi chuqur tajribasi Remix’ning ichma-ich marshrutlash modeliga asos bo’lgan.
Veb standartlariga qaytish falsafasi
Remix ko’plab zamonaviy freymvorklardan farqli o’laroq, brauzerning o’zi taqdim etadigan FormData va fetch kabi standart veb-API‘laridan faol foydalanishni targ’ib qiladi, JavaScript orqali qayta yaratilgan muqobil yechimlar o’rniga. Bu yondashuv Remix ilovalarini JavaScript o’chirilgan holatda ham qisman ishlay olishga yaqinlashtiradi.
Ichma-ich routing modeli
Remix’da sahifa marshrutlari ichma-ich (nested) tuzilishga ega bo’lib, har bir marshrut darajasi o’z ma’lumotini mustaqil yuklashi mumkin. Masalan, “loyiha” sahifasi ichidagi “vazifa” kichik sahifasi faqat o’ziga zarur ma’lumotni so’raydi, butun sahifa ma’lumotini qayta yuklamaydi — bu esa ma’lumot yuklashni ancha samarali qiladi.
Server va client chegarasini yo’qotish
Remix’da har bir marshrut o’zining server tomonida ishlaydigan “loader” (ma’lumot yuklash) va “action” (formani qayta ishlash) funksiyalarini belgilashi mumkin, bu funksiyalar avtomatik ravishda faqat serverda bajariladi. Bu yondashuv dasturchiga alohida backend API yaratmasdan, bitta kod bazasida to’liq stack ilova qurish imkonini beradi.
Next.js bilan farqi
Next.js statik generatsiya, server komponentlari va boshqa ko’plab render strategiyalarini taklif qilib, moslashuvchanlikka urg’u bersa, Remix ko’proq server tomonida render qilish va veb-standartlarga sodiqlikka e’tibor qaratadi. 2023-yilda Remix va React Router loyihalari birlashtirilib, ikkala texnologiya yaqinroq rivojlanmoqda.
Bog’liq tushunchalar
React, React Router, Server-side rendering, Veb standartlari, Next.js, Loader, Nested routing