Ի՞նչ է React-ը։ Պարզ ուղեցույց ոչ ծրագրավորողների համար
React-ը JavaScript գրադարան է օգտատիրոջ ինտերֆեյսներ կառուցելու համար՝ հավելվածի այն մասը, որ մարդիկ տեսնում և սեղմում են։ Էկրանները կառուցում եք վերօգտագործելի մասերից, որոնք կոչվում են կոմպոնենտներ, օրինակ՝ կոճակ, ապրանքի քարտ կամ ամբողջ էջ, իսկ React-ը էկրանը համաձայնեցնում է ձեր տվյալների հետ․ երբ տվյալները փոխվում են, React-ը թարմացնում է էջի այն մասերը, որոնք դրանից են կախված։ Այն ստեղծվել է Facebook-ում (այժմ՝ Meta), բաց կոդով է և վեբ հավելվածներ կառուցելու ամենալայն օգտագործվող եղանակներից մեկն է։
Ինչու է այն կարևոր AI-ով կառուցելիս
Եթե վեբ հավելված եք կառուցում AI գործիքով, կա լավ հավանականություն, որ այն գրված է React-ով։ Շատ AI հավելվածների կառուցողներ React-ն օգտագործում են որպես լռելյայն, քանի որ այն տարածված է, լավ փաստաթղթավորված է, և AI մոդելների համար կա հսկայական քանակությամբ React կոդ, որից նրանք կարող են սովորել։
AI-ով կառուցելու համար React գրել պետք չէ։ Բայց մի քիչ իմանալը օգնում է․
- Ճշգրիտ նկարագրել փոփոխությունները։ «Փոխիր ProductCard կոմպոնենտը, որպեսզի գինը լինի թավ» ավելի հստակ է, քան «ինչ-որ տեղ գները աչքի ընկնող դարձրու»։
- Հասկանալ սխալները։ Այնպիսի հաղորդագրություններ, ինչպիսիք են «Cannot read properties of undefined» կամ «Too many re-renders», ավելի իմաստալից են դառնում։
- Ողջամիտ որոշումներ կայացնել։ Պարզ React հավելվածները ռենդերվում են բրաուզերում, ինչը ազդում է որոնման տեսանելիության և առաջին բեռնման արագության վրա։ Դա իմանալը օգնում է որոշել, թե երբ խնդրել այլ կարգավորում։
- Հետագայում աշխատել մշակողների հետ։ React-ը տարածված հմտություն է, ուստի մշակողը սովորաբար կարող է արագ ծանոթանալ React կոդային բազայի հետ։
Ամենօրյա անալոգիա
Պատկերացրեք LEGO։ Ամբողջ մոդելը մեկ բլոկից փորագրելու փոխարեն, այն կառուցում եք ստանդարտ աղյուսակներից։ Մի քանի աղյուսակ կազմում են անիվ, չորս անիվ և մի քանի այլ մաս՝ մեքենա։ Եթե ուզում եք, որ յուրաքանչյուր մեքենայի անիվները կարմիր լինեն, փոխում եք անիվի դիզայնը մեկ անգամ։
React-ի կոմպոնենտները աղյուսակներն են։ Button կոմպոնենտը օգտագործվում է ProductCard-ի ներսում, որը օգտագործվում է ProductGrid-ի ներսում, որը մաս է կազմում ShopPage-ին։ Փոխում եք Button-ը մեկ անգամ, և հավելվածի յուրաքանչյուր կոճակ փոխվում է։
Անալոգիայի մյուս կեսը․ պատկերացրեք, որ LEGO մոդելը ինքն իրեն վերակառուցում է, երբ փոխում եք հրահանգները։ Սա React-ի մյուս հնարքն է․ դուք նկարագրում եք, թե ինչ պետք է երևա էկրանին ընթացիկ տվյալների համար, և React-ը որոշում է, թե էջում ինչ փոխել։
Հիմնական գաղափարները
Կոմպոնենտներ
Կոմպոնենտը JavaScript ֆունկցիա է, որը վերադարձնում է ինտերֆեյսի մի կտոր։ React-ի փաստաթղթերը կոմպոնենտը նկարագրում են որպես UI-ի մի մաս, որն ունի իր սեփական տրամաբանությունը և արտաքինը։ Կոմպոնենտների անունները սկսվում են մեծատառով։
JSX
Կոմպոնենտները սովորաբար գրվում են JSX-ով, որը նման է JavaScript-ի մեջ խառնված HTML-ի․
function Greeting() {
return <h1>Welcome back!</h1>;
}
JSX-ը պարտադիր չէ, բայց React-ի փաստաթղթերը նշում են, որ նախագծերի մեծ մասը այն օգտագործում է։ Այն վերածվում է սովորական JavaScript-ի, նախքան բրաուզերում աշխատելը։
Props-եր
Props-երը այն մուտքերն են, որ փոխանցում եք կոմպոնենտին, ինչպես վերօգտագործելի մասի կարգավորումները․
<ProductCard name="Lavender Candle" price={24} />
Նույն ProductCard-ը կարող է ցույց տալ ցանկացած ապրանք։
State
State-ը տեղեկատվություն է, որ կոմպոնենտը հիշում է և որ կարող է փոխվել հավելվածի աշխատանքի ընթացքում․ արդյոք մենյուն բացված է, ինչ է գրված որոնման դաշտում, քանի ապրանք կա զամբյուղում։ Երբ state-ը փոխվում է, React-ը նորից ռենդերում է կոմպոնենտը, որպեսզի էկրանը համապատասխանի։
Hooks-եր
Hooks-երը այն ֆունկցիաներն են, որոնց անունները սկսվում են use-ով, օրինակ՝ useState (հիշել արժեք) և useEffect (կոդ գործարկել ռենդերից հետո, օրինակ՝ տվյալներ բեռնելու համար)։ Դրանք ամենուր կտեսնեք AI-ի գեներացրած React կոդում։
Օրինակ՝ զամբյուղի հաշվիչ
Ենթադրենք, ձեր առցանց խանութն ունի «Ավելացնել զամբյուղում» կոճակ և զամբյուղի պատկերակ, որը ցույց է տալիս ապրանքների քանակը։ React-ով այն մոտավորապես այսպես է երևում․
import { useState } from "react";
function Shop() {
const [cartCount, setCartCount] = useState(0);
return (
<div>
<CartIcon count={cartCount} />
<ProductCard
name="Lavender Candle"
price={24}
onAdd={() => setCartCount(cartCount + 1)}
/>
</div>
);
}
function CartIcon({ count }) {
return <span>Cart ({count})</span>;
}
function ProductCard({ name, price, onAdd }) {
return (
<div>
<h2>{name}</h2>
<p>${price}</p>
<button onClick={onAdd}>Add to cart</button>
</div>
);
}
Ու՞մ ինչ է տեղի ունենում, երբ գնորդը սեղմում է «Ավելացնել զամբյուղում»։
- Կոճակի
onClick-ը կանչում էonAdd-ը, որը կանչում էsetCartCount-ը։ - React-ը
cartCountstate-ը թարմացնում է 0-ից 1։ - React-ը նորից ռենդերում է
Shop-ը՝count={1}փոխանցելովCartIcon-ին։ - Էջը արդեն ցույց է տալիս «Cart (1)»։ Ոչ ոք կոդ չի գրել, որ ասի «գտիր զամբյուղի տեքստը և փոխիր այն» — էկրանը հետևում է տվյալներին։
Նկատեք նաև սահմանները։ Այս հաշվիչը գտնվում է բրաուզերի հիշողության մեջ։ Թարմացրեք էջը, և այն նորից 0 կլինի։ Զամբյուղը պահելու համար պետք է այն պահել որևէ տեղ երկարատև՝ cookie-ում, բրաուզերի պահոցում կամ տվյալների բազայում ձեր backend-ի միջոցով։ React-ը կառավարում է էկրանը, այն չի պահում ձեր տվյալները։
Ուր է տեղավորվում React-ը վեբ հավելվածում
| Մաս | Ինչ է անում | Տարածված ընտրություններ |
|---|---|---|
| UI գրադարան | Կառուցում է ինտերֆեյսը | React |
| Լեզու | Ինչով է գրված կոդը | JavaScript կամ TypeScript |
| Build գործիք | Վերածում է սկզբնական կոդը բրաուզերի ֆայլերի և աշխատեցնում dev սերվերը | Vite |
| Framework (ըստ ցանկության) | Ավելացնում է երթուղավորում, սերվերային ռենդերինգ, տվյալների բեռնում | Next.js, React Router |
| Ոճավորում | Ինչպես է երևում | Tailwind CSS, CSS ֆայլեր |
| Backend | Բիզնես տրամաբանություն, տվյալներ, գաղտնիքներ | Node.js, Python և այլն |
| Տվյալների բազա | Պահում է տվյալները | Postgres և այլն |
Պատրաստված «Vite + React» հավելվածը ռենդերվում է բրաուզերում (մեկ էջանոց հավելված)։ Next.js հավելվածը կարող է նախ սերվերի վրա ռենդերել էջերը, ինչը օգնում է որոնիչ համակարգերին և առաջին բեռնման արագությանը։
Բանալի տերմիններ բացատրված
| Տերմին | Նշանակություն |
|---|---|
| Կոմպոնենտ | Ինտերֆեյսի վերօգտագործելի մաս, գրված որպես ֆունկցիա։ |
| JSX | HTML-ի նման շարահյուսություն JavaScript-ի ներսում, որով նկարագրվում են կոմպոնենտները։ |
| Props-եր | Կոմպոնենտին փոխանցվող մուտքեր։ |
| State | Տվյալներ, որ կոմպոնենտը հիշում է և որ կարող են ժամանակի ընթացքում փոխվել։ |
| Hook | use-ով սկսվող ֆունկցիա, որ կոմպոնենտին ավելացնում է հնարավորություններ, օրինակ՝ state։ |
| Render / re-render | React-ը որոշում է, թե ինչ պետք է ցույց տա էկրանը, նորից՝ փոփոխություններից հետո։ |
| Մեկ էջանոց հավելված (SPA) | Հավելված, որ բեռնվում է մեկ անգամ և էջը թարմացնում JavaScript-ով՝ նոր էջեր բեռնելու փոխարեն։ |
| Սերվերային ռենդերինգ (SSR) | Էջի HTML-ը պատրաստել սերվերի վրա՝ նախքան ուղարկելը։ |
| npm փաթեթ | Վերօգտագործելի կոդի գրադարան, որ կարող եք տեղադրել, օրինակ՝ ամսաթվի ընտրիչ կամ գրաֆիկների գրադարան։ |
| React Native | Առնչվող նախագիծ բնիկ բջջային հավելվածներ կառուցելու համար։ |
Տարածված սխալներ և թյուրըմբռնումներ
- «React-ը ծրագրավորման լեզու է»։ Այն գրադարան է, որ գրված է JavaScript-ով (կամ TypeScript-ով) և օգտագործվում է դրանից։
- «React-ը պահում է իմ տվյալները»։ State-ը ապրում է բրաուզերում և անհետանում է թարմացնելիս։ Երկարատև տվյալները պահանջում են backend և տվյալների բազա։
- Գաղտնիքները React կոդում դնելը։ React հավելվածի ամեն ինչ ուղարկվում է այցելուի բրաուզեր։ Այնտեղ գտնվող API բանալիները հանրային են։ Պահեք դրանք սերվերի վրա։
- «React հավելվածները չեն կարող հայտնվել որոնման մեջ»։ Միայն-բրաուզերային ռենդերինգը որոնման համար ավելի թույլ է, բայց նախապես ռենդերինգը կամ սերվերային ռենդերինգը լուծում են դրա մեծ մասը։
- Հսկա կոմպոնենտներ։ Մեկ 1,000 տողանոց կոմպոնենտը դժվար է փոխել ապահով՝ և՛ մարդկանց, և՛ AI-ի համար։ Խնդրեք ավելի փոքրերը։
- Ենթադրելը, որ React վեբ հավելվածը բջջային հավելված է։ Այն աշխատում է բրաուզերում, ներառյալ հեռախոսներում, բայց App Store հավելված չէ։
Ինչ խնդրել ձեր AI կառուցողից
- «Բաժանիր այս էջը փոքր, անվանված կոմպոնենտների և ասա, թե յուրաքանչյուրը որ ֆայլում է։»
- «Դարձրու ProductCard կոմպոնենտը վերօգտագործելի՝ name, price և image props-երով։»
- «Պահիր զամբյուղը տվյալների բազայում, որ այն չկորչի թարմացնելուց հետո։»
- «Պահիր բոլոր API բանալիները սերվերի վրա․ React կոդը պետք է կանչի մեր սեփական API-ն։»
- «Ավելացրու բեռնման և սխալի վիճակներ սերվերից եկող տվյալների համար։»
- «Եթե այս էջերի համար որոնման տեսանելիությունը կարևոր է, նախապես ռենդերիր դրանք կամ օգտագործիր սերվերային ռենդերինգով կարգավորում։»
- «Պարզ լեզվով բացատրիր, թե ինչ է նշանակում այս սխալը և որ կոմպոնենտից է այն գալիս։»
Ավելի մեծ պատկերի համար տե՛ս frontend-ը և backend-ը, իսկ AI-ի գրած կոդը վերանայելու համար՝ ինչպես վերանայել AI-ի գեներացրած կոդը։
React-ը Mythex-ում
Եթե այլ բան չեք խնդրում, Mythex-ը նոր նախագծերը սկսում է Vite + React + TypeScript + Tailwind-ով՝ զրույցի ընթացքում աշխատող կենդանի նախադիտմամբ։ Կարող եք նշել այլ կարգավորում ձեր առաջին պրոմթում, օրինակ՝ «Օգտագործիր Next.js» կամ «պարզստատիկ HTML վայրէջքի էջ», և Mythex-ը ընտրում է այն ձեր գրածից․ դրա համար կարգավորումների էկրան չկա։ Տեխնոլոգիայի ընտրության եղանակները բացատրում է փաստաթղթերի էջը։ Կոդի խմբագրիչը Free պլանում միայն կարդալու է․ Pro-ում կարող եք ուղղակիորեն խմբագրել React կոդը և արտահանել նախագիծը՝ աշխատանքը շարունակելու համար այլուր։
Հարցեր
Ի՞նչ է React-ը պարզ ասած
React-ը JavaScript գրադարան է օգտատիրոջ ինտերֆեյսներ կառուցելու համար։ Էկրանները կառուցում եք վերօգտագործելի մասերից, որոնք կոչվում են կոմպոնենտներ, օրինակ՝ կոճակ, ապրանքի քարտ կամ ամբողջ էջ, և React-ը թարմացնում է էկրանին եղածը, երբ փոխվում են հիմքում ընկած տվյալները։
React-ը framework է, թե գրադարան
React-ը իրեն անվանում է գրադարան․ այն կենտրոնանում է ինտերֆեյսը կառուցելու վրա։ Դրա վրա կառուցված framework-ները, օրինակ՝ Next.js-ը, ավելացնում են այնպիսի բաներ, ինչպիսիք են երթուղավորումը, սերվերային ռենդերինգը և տվյալների բեռնումը։
Ինչու են AI հավելվածների կառուցողները օգտագործում React-ը
React-ը վեբ ինտերֆեյսներ կառուցելու ամենալայն օգտագործվող եղանակներից մեկն է, ուստի AI մոդելների համար կա հսկայական քանակությամբ React կոդ և փաստաթուղթ, որից նրանք կարող են սովորել։ Նրա կոմպոնենտային կառուցվածքը նաև հարմար է փոքր, նպատակային փոփոխությունների համար։
Արդյո՞ք React-ը վատ է SEO-ի համար
Ոչ բնորոշ։ Այն React հավելվածը, որը ամեն ինչ ռենդերում է բրաուզերում, ավելի դժվար է որոշ որոնիչ ծրագրերի համար, բայց React-ը կարող է նաև նախապես ռենդերվել կամ ռենդերվել սերվերի վրա, օրինակ՝ Next.js-ով, ինչը լուծում է այդ խնդրի մեծ մասը։
Նույնն է արդյո՞ք React-ը, ինչ React Native-ը
Ոչ։ React-ը կառուցում է վեբ ինտերֆեյսներ, որոնք աշխատում են բրաուզերում։ React Native-ը նույն գաղափարներն է օգտագործում բնիկ iOS և Android հավելվածներ կառուցելու համար։ Նրանք ունեն ընդհանուր հասկացություններ, բայց ոչ շատ շինանյութեր։