Kaj je React? Preprost vodnik za nerazvijalce
React je knjižnica JavaScript za gradnjo uporabniških vmesnikov – dela aplikacije, ki ga ljudje vidijo in klikajo. Zaslone sestavite iz ponovno uporabnih delov, imenovanih komponente, na primer gumba, kartice izdelka ali celotne strani, React pa zaslon sinhronizira s podatki: ko se podatki spremenijo, posodobi dele strani, ki so od njih odvisni. Nastal je pri Facebooku (zdaj Meta), je odprtokoden in je eden najbolj razširjenih načinov gradnje spletnih aplikacij.
Zakaj je to pomembno, ko gradite z AI
Če spletno aplikacijo gradite z orodjem z AI, obstaja velika verjetnost, da je napisana v Reactu. Mnogi gradniki aplikacij z AI privzeto uporabljajo React, ker je priljubljen, dobro dokumentiran in ker obstaja ogromno kode v Reactu, iz katere se modeli AI lahko učijo.
Za gradnjo z AI vam React ni treba pisati. Malo poznavanja pa vam pomaga:
- Natančno opisati spremembe. »Spremeni komponento ProductCard, tako da bo cena krepka« je jasneje kot »nekje naredi cene bolj opazne«.
- Razumeti napake. Sporočila, kot sta »Cannot read properties of undefined« ali »Too many re-renders«, postanejo smiselna.
- Sprejemati smiselne odločitve. Čisto React aplikacije se upodabljajo v brskalniku, kar vpliva na vidnost v iskalnikih in hitrost prvega nalaganja. Če to veste, lažje presodite, kdaj prositi za drugačno postavitev.
- Pozneje delati z razvijalci. React je pogosta veščina, zato lahko razvijalec običajno hitro prevzame kodno bazo v Reactu.
Vsakdanja primerjava
Pomislite na LEGO. Namesto da celoten model izrežete iz enega bloka, ga sestavite iz standardnih kock. Nekaj kock naredi kolo; štirje kolesi in še nekaj delov naredijo avto. Če želite, da imajo vsi avtomobili rdeča kolesa, spremenite zasnovo kolesa enkrat.
Komponente v Reactu so te kocke. Komponenta Button je uporabljena znotraj ProductCard, ta znotraj ProductGrid, ta pa je del ShopPage. Spremenite Button enkrat in vsi gumbi v aplikaciji se spremenijo.
Drugi del primerjave: predstavljajte si, da se model LEGO sam prestavi, ko spremenite navodila. To je drugi trik Reacta – opišete, kako naj zaslon izgleda za trenutne podatke, React pa ugotovi, kaj na strani spremeniti.
Osnovne ideje
Komponente
Komponenta je funkcija JavaScript, ki vrne del vmesnika. Dokumentacija Reacta opisuje komponento kot del uporabniškega vmesnika, ki ima svojo logiko in videz. Imena komponent se začnejo z veliko začetnico.
JSX
Komponente so ponavadi napisane v JSX, ki je videti kot HTML, pomešan z JavaScriptom:
function Greeting() {
return <h1>Welcome back!</h1>;
}
JSX ni obvezen, a dokumentacija Reacta opozarja, da ga večina projektov uporablja. Pred zagonom v brskalniku se pretvori v navaden JavaScript.
Props
Props so vhodi, ki jih podate komponenti, kot nastavitve na ponovno uporabnem delu:
<ProductCard name="Lavender Candle" price={24} />
Isti ProductCard lahko prikaže kateri koli izdelek.
Stanje (state)
Stanje so podatki, ki si jih komponenta zapomni in se lahko spremenijo med delovanjem aplikacije – ali je meni odprt, kaj je vpisano v iskalno polje, koliko izdelkov je v košarici. Ko se stanje spremeni, React komponento ponovno upodobi, da se zaslon ujema s stanjem.
Hooks
Hooks so funkcije, katerih imena se začnejo z use, na primer useState (zapomni si vrednost) in useEffect (zaženi kodo po upodobitvi, na primer za pridobivanje podatkov). V kodi Reacta, ustvarjeni z AI, jih boste videli povsod.
Delovni primer: števec košarice
Recimo, da ima vaša spletna trgovina gumb »Dodaj v košarico« in ikono košarice, ki prikazuje število izdelkov. V Reactu bi bilo to približno tako:
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>
);
}
Kaj se zgodi, ko kupec klikne »Dodaj v košarico«:
- Gumb
onClickpokličeonAdd, ta pa pokličesetCartCount. - React posodobi stanje
cartCountz 0 na 1. - React ponovno upodobi
Shopin vCartIconpodacount={1}. - Stran zdaj prikazuje »Cart (1)«. Nihče ni napisal kode, ki bi rekla »poišči besedilo košarice in ga spremeni« – zaslon sledi podatkom.
Opazite tudi omejitve. To število živi v pomnilniku brskalnika. Če stran osvežite, je spet 0. Če želite ohraniti košarico, jo morate shraniti nekam trajno – v piškotek, shrambo brskalnika ali bazo podatkov prek zaledja. React upravlja zaslon; podatkov ne shranjuje.
Kje je React v spletni aplikaciji
| Del | Kaj naredi | Pogoste izbire |
|---|---|---|
| Knjižnica za vmesnik | Gradi vmesnik | React |
| Jezik | V čem je napisana koda | JavaScript ali TypeScript |
| Gradnik (build tool) | Pretvori izvorno kodo v datoteke, ki jih brskalnik naloži; požene razvojni strežnik | Vite |
| Ogrodje (izbirno) | Doda usmerjanje, strežniško upodabljanje, nalaganje podatkov | Next.js, React Router |
| Slog | Kako izgleda | Tailwind CSS, CSS datoteke |
| Zaledje | Poslovna logika, podatki, skrivnosti | Node.js, Python in drugi |
| Baza podatkov | Shranjuje podatke | Postgres in drugi |
Aplikacija »Vite + React« se upodablja v brskalniku (enostranska aplikacija, SPA). Aplikacija Next.js lahko strani najprej upodobi na strežniku, kar pomaga iskalnikom in hitrosti prvega nalaganja.
Razlaga pogostih pojmov
| Pojem | Pomen |
|---|---|
| Komponenta | Ponovno uporabni del vmesnika, napisan kot funkcija. |
| JSX | Sintaksa, podobna HTML-ju, znotraj JavaScripta za opis komponent. |
| Props | Vhodi, podani komponenti. |
| Stanje (state) | Podatki, ki si jih komponenta zapomni in se lahko spreminjajo skozi čas. |
| Hook | Funkcija, ki se začne z use in komponenti doda zmožnosti, kot je stanje. |
| Upodobitev / ponovna upodobitev (render / re-render) | React ugotovi, kaj naj zaslon prikaže, spet po spremembah. |
| Enostranska aplikacija (SPA) | Aplikacija, ki se naloži enkrat in stran posodablja z JavaScriptom namesto nalaganja novih strani. |
| Upodabljanje na strežniku (SSR) | Ustvarjanje HTML strani na strežniku, preden se pošlje. |
| Paket npm | Ponovno uporabna knjižnica kode, ki jo lahko namestite, na primer izbirnik datuma ali knjižnica za grafe. |
| React Native | Sorodni projekt za gradnjo nativnih mobilnih aplikacij. |
Pogoste napake in napačna razumevanja
- »React je programski jezik.« Je knjižnica, napisana v JavaScriptu (ali TypeScriptu) in uporabljena iz njega.
- »React shranjuje moje podatke.« Stanje živi v brskalniku in ob osvežitvi izgine. Trajni podatki potrebujejo zaledje in bazo.
- Skrivnosti v kodi Reacta. Vse v aplikaciji React se pošlje v brskalnik obiskovalca. API ključi tam so javni. Hranite jih na strežniku.
- »Aplikacije React ne morejo biti na vrhu iskanja.« Upodabljanje samo na strani odjemalca je za iskalnike šibkejše, a predhodno upodabljanje ali upodabljanje na strežniku to večinoma odpravi.
- Ogromne komponente. Ena komponenta s 1.000 vrsticami je težko varno spremeniti tako za ljudi kot za AI. Zahtevajte manjše.
- Predpostavka, da je spletna aplikacija React mobilna aplikacija. Teče v brskalniku, tudi na telefonih, vendar ni aplikacija iz App Storea.
Kaj zahtevati od svojega gradnika z AI
- »Razdeli to stran na majhne, poimenovane komponente in povej, v kateri datoteki je vsaka.«
- »Naredi komponento ProductCard ponovno uporabno, z imenom, ceno in sliko kot props.«
- »Shrani košarico v bazo, da preživi osvežitev strani.«
- »Vse API ključe hrani na strežniku; koda Reacta naj kliče naš lastni API.«
- »Dodaj stanja nalaganja in napake za podatke, ki prihajajo s strežnika.«
- »Če je iskalna vidnost za te strani pomembna, jih predhodno upodobi ali uporabi strežniško upodobljeno postavitev.«
- »V preprostem jeziku razloži, kaj pomeni ta napaka in iz katere komponente izvira.«
Za širšo sliko glejte frontend proti backendu, za pregled kode, ki jo je napisal AI, pa kako pregledati kodo, ustvarjeno z AI.
React v Mythex
Če ne zahtevate drugače, Mythex nove projekte začne z Vite + React + TypeScript + Tailwind, med klepetom pa teče živi predogled. V prvem pozivu lahko navedete drugo postavitev – na primer »Uporabi Next.js« ali »preprosta statična pristajalna stran v HTML-ju« – Mythex jo prepozna iz besedila; nastavitvenega zaslona za to ni. Stran dokumentacije o tem, kako se izbira tehnologija, razloži možnosti. Urejevalnik kode je v brezplačnem paketu samo za branje; v paketu Pro lahko React kodo urejate neposredno in projekt izvozite, da ga lahko nadaljujete drugje.
Vprašanja
Kaj je React na kratko?
React je knjižnica JavaScript za gradnjo uporabniških vmesnikov. Zaslone sestavite iz ponovno uporabnih delov, imenovanih komponente, na primer gumba, kartice izdelka ali celotne strani, React pa posodobi, kar je na zaslonu prikazano, ko se podatki za tem spremenijo.
Ali je React ogrodje (framework) ali knjižnica?
React se imenuje knjižnica: osredotoča se na gradnjo vmesnika. Ogrodja, zgrajena nad njim, na primer Next.js, dodajo stvari, kot so usmerjanje, strežniško upodabljanje in nalaganje podatkov.
Zakaj gradniki aplikacij z AI uporabljajo React?
React je eden najbolj razširjenih načinov gradnje spletnih vmesnikov, zato obstaja ogromno kode in dokumentacije za Reactu, iz katere se modeli AI lahko učijo. Njegova struktura komponent je primerna tudi za majhne, ciljne spremembe.
Ali je React slab za SEO?
Samo po sebi ne. Aplikacija React, ki vse upodobi v brskalniku, je nekaterim iskalnim robotom težje berljiva, React pa se lahko predhodno upodobi ali upodablja na strežniku, na primer z Next.js, kar večino tega reši.
Ali je React isto kot React Native?
Ne. React gradi spletne vmesnike, ki tečejo v brskalniku. React Native uporablja iste ideje za gradnjo nativnih aplikacij za iOS in Android. Delita koncepte, ne pa večine gradnikov.