Composition over configuration tamoyili, children prop chuqur qo'llanilishi va bir nechta named slot patterni — test va mashqlar bilan.
PART 5'da children prop bilan tanishgan edik — endi uni composition patternlarida chuqurroq qo'llaymiz.
App.jsxReact JSXfunction Modal({ children, onClose }) {return (<div className="overlay"><div className="modal">{children}<button onClick={onClose}>Yopish</button></div></div>);}<Modal onClose={closeModal}><LoginForm /></Modal>
Agar Card komponenti ichidagi har bir mumkin bo'lgan kontent uchun alohida prop qo'shsak, u tezda boshqarib bo'lmaydigan holga keladi. Composition bunday muammoni children orqali hal qiladi.
App.jsxReact JSXfunction PageLayout({ header, sidebar, children }) {return (<div><header>{header}</header><aside>{sidebar}</aside><main>{children}</main></div>);}<PageLayout header={<Navbar />} sidebar={<Filters />}><ProductGrid /></PageLayout>
Task: Card komponenti yarating, u istalgan children'ni ko'rsata olsin.
Task: header, sidebar, children uchun uchta "slot"i bo'lgan PageLayout yarating.
App.jsxReact JSXfunction Card({ title, description, footerText, footerButtonText, footerButtonAction }) {// props soni ortib bormoqda...}
Your Task: Bu komponent qanday muammoga duch kelmoqda va uni qanday yechish mumkin?
<details> <summary>Solution</summary> Muammo — "props portlashi" (props explosion): har bir yangi imkoniyat uchun yangi prop qo'shilmoqda. Yechim — composition: ```jsx function Card({ children }) { return <div className="card">{children}</div>; } <Card> <h3>Sarlavha</h3> <p>Tavsif</p> <Footer> <button onClick={action}>Amal</button> </Footer> </Card> ``` </details>Composition — ko'p sonli configuration proplardan ko'ra moslashuvchanroq. children — komponentga ixtiyoriy JSX joylashtirish imkonini beradi.
children — universal "slot"App.jsxReact JSXfunction Wrapper({ children }) { return <div>{children}</div>; }<Wrapper><Anything /></Wrapper>function Layout({ header, children }) { return <><header>{header}</header><main>{children}</main></>; }<Layout header={<Nav />}><Content /></Layout>
Mavzu bo‘yicha tushunchalaringizni interaktiv test orqali sinovdan o‘tkazing va natijalarni bilib oling.
Darslikda o‘rganilgan qoidalarga asosan real kod yozing, testlardan o‘tkazing va yechimlarni mustahkamlang.
Test Sinovi
Hali topshirilmagan (kamida 75% kerak)
Amaliy Masalalar
0 / 2 ta yechildi (kamida 75% kerak)
Dars sifati va mazmunini yaxshilash uchun o‘z haqqoniy bahoingizni qoldiring.
Mavzuni to‘liq o‘zlashtirish uchun test sinovi, amaliy kodlash va bog‘liq darslar
O‘z bilimingizni interaktiv test savollari orqali tekshiring va darhol xatolarni tahlil qiling.
Nazariyani real kod yozish bilan mustahkamlang, avtomatik testlardan o‘ting va XP to‘plang.
Kurs bo‘yicha keyingi va bog‘liq mavzular: