Structure
Last updated
Last updated
Ushbu bo‘lim barcha FIAS shablonlari uchun umumiy tuzilma prinsiplarini tushuntiradi. Agar siz maxsus Next.js yoki React.js uchun tuzilmani ko‘rmoqchi bo‘lsangiz, quyidagilarga murojaat qiling:
Feature-Sliced Design — bu frontend arxitekturasi bo‘lib, loyihadagi kodlar texnik rollarga (masalan: components
, services
, utils
) emas, balki biznes funksiyalari asosida tashkil etiladi.
FSD asosiy maqsadlari:
Loyihani kattalashtirish oson bo‘lishi
Feature'larni ajratish (Separation of Concerns)
Koddan qayta foydalanish va kodni soddalashtirish
FIAS loyihasi quyidagi asosiy bo‘limlarga ajratiladi:
app/
(faqat Next.js uchun)App Router asosida marshrutlar va layout'lar shu yerda aniqlanadi.
pages/
(faqat React.js uchun)Asosiy sahifalar va routing sozlamalari shu yerda joylashadi.
shared/
Loyihaning istalgan qismida qayta foydalaniladigan umumiy komponentlar, hook’lar, util funksiyalar, uslublar va typelar joylashadi.
entities/
Domen darajasidagi unitlar (masalan: user
, product
, cart
) joylashadi.
Har bir entity quyidagilardan iborat bo‘ladi:
O‘ziga xos ma’lumot modellari
UI komponentlar
Minimal biznes logika
features/
Bitta yoki bir nechta entities
asosida qurilgan funksional birliklar.
Misol uchun: auth/login
, search/filter
, cart/addItem
.
widgets/
Bir nechta features
yoki entities
ni birlashtirgan murakkab UI bloklari.
Misollar: Header
, Sidebar
, ProductPreview
.
processes/
(ixtiyoriy)Murakkab UI jarayonlari (workflow)ni boshqaruvchi logikalar.
Masalan: checkout
jarayoni, turli qismdagi widgets
va features
ni birlashtiradi.
app/
yoki pages/
Ilovaning boshlang‘ich nuqtalari — marshrutlar, layout’lar va umumiy konfiguratsiyalar joylashadi.
(Template turiga qarab farq qiladi: Next.js’da app/
, React’da pages/
bo‘ladi)
Har bir funksional bo‘lim odatda quyidagi ichki tuzilmani egallaydi:
ui/ – Interfeys komponentlari model/ – Holatlarni boshqarish, hook’lar, Zustand yoki schema’lar lib/ – Ichki biznes mantiqlari, yordamchi funksiyalar