Rokasgrāmatas

Kas ir React? Vienkāršs ceļvedis nespeciālistiem

React ir JavaScript bibliotēka lietotāja saskarņu veidošanai — tajā lietotnes daļā, ko cilvēki redz un uz kuras spiež. Ekrānus veidojat no atkārtoti lietojamām daļām, ko sauc par komponentiem, piemēram, pogas, produkta kartītes vai visas lapas, un React sinhronizē ekrānu ar jūsu datiem: kad dati mainās, React atjauno tās lapas daļas, kas no tiem ir atkarīgas. To izveidoja Facebook (tagad Meta), tas ir atvērtā koda, un tas ir viens no visplašāk izmantotajiem veidiem, kā veidot tīmekļa lietotnes.

Kāpēc tas ir svarīgi, veidojot ar MI

Ja veidojat tīmekļa lietotni ar MI rīku, ir liela iespēja, ka tā ir rakstīta React. Daudzi MI lietotņu veidotāji pēc noklusējuma izmanto React, jo tas ir populārs, labi dokumentēts un MI modeļiem ir milzums React koda, no kura mācīties.

Lai veidotu ar MI, jums nav jāraksta React. Taču mazliet to zinot, jūs varat:

  • Precīzi aprakstīt izmaiņas. „Mainīt ProductCard komponentu, lai cena būtu treknrakstā” ir skaidrāk nekā „padari cenas kaut kur izceltas”.
  • Saprast kļūdas. Ziņojumi, piemēram, „Cannot read properties of undefined” vai „Too many re-renders”, kļūst saprotamāki.
  • Pieņemt saprātīgas izvēles. Vienkārša React lietotne renderējas pārlūkprogrammā, un tas ietekmē redzamību meklētājprogrammās un pirmās ielādes ātrumu. To zinot, varat izlemt, kad lūgt citu uzstādījumu.
  • Vēlāk strādāt ar izstrādātājiem. React ir izplatīta prasme, tāpēc izstrādātājs parasti var uzreiz iepazīties ar React kodbāzi.

Ikdienas salīdzinājums

Iedomājieties LEGO. Tā vietā, lai no viena bloka izgrieztu visu modeli, jūs to veidojat no standarta klucīšiem. Daži klucīši veido riteni; četri riteņi un dažas citas detaļas veido automašīnu. Ja vēlaties, lai visām automašīnām būtu sarkani riteņi, jūs mainat riteņa dizainu vienreiz.

React komponenti ir šie klucīši. Komponents Button tiek lietots komponentā ProductCard, kas tiek lietots komponentā ProductGrid, kas ir daļa no ShopPage. Mainiet Button vienreiz, un katra poga lietotnē mainās.

Otra analoģijas puse: iedomājieties, ka LEGO modelis pārbūvējas pats, kad maināt instrukcijas. Tā ir React otra īpašība — jūs aprakstāt, kādam jābūt ekrānam pašreizējiem datiem, un React izdomā, ko lapā mainīt.

Galvenās idejas

Komponenti

Komponents ir JavaScript funkcija, kas atgriež saskarnes daļu. React dokumentācija apraksta komponentu kā UI daļu, kurai ir sava loģika un izskats. Komponentu nosaukumi sākas ar lielo burtu.

JSX

Komponenti parasti tiek rakstīti JSX, kas izskatās pēc HTML, sajaukta ar JavaScript:

function Greeting() {
  return <h1>Esiet sveicināts atpakaļ!</h1>;
}

JSX nav obligāts, taču React dokumentācija norāda, ka lielākā daļa projektu to izmanto. Pirms izpildes pārlūkprogrammā tas tiek pārveidots par parastu JavaScript.

Props

Props ir ievades, ko padodat komponentam, piemēram, atkārtoti lietojamas daļas iestatījumi:

<ProductCard name="Lavandas svece" price={24} />

Tas pats ProductCard var parādīt jebkuru produktu.

State

State ir informācija, ko komponents atceras un kas var mainīties, kamēr lietotne darbojas — vai izvēlne ir atvērta, kas ierakstīts meklēšanas lodziņā, cik preču ir grozā. Kad state mainās, React pārrenderē komponentu, lai ekrāns atbilstu.

Hooks

Hooks ir funkcijas, kuru nosaukums sākas ar use, piemēram, useState (atcerēties vērtību) un useEffect (izpildīt kodu pēc renderēšanas, piemēram, datu ielādei). Tos redzēsiet visur MI ģenerētajā React kodā.

Darba piemērs: groza skaitītājs

Pieņemsim, ka jūsu tiešsaistes veikalam ir poga „Pievienot grozam” un groza ikona, kas rāda preču skaitu. React tas izskatās aptuveni šādi:

import { useState } from "react";

function Shop() {
  const [cartCount, setCartCount] = useState(0);

  return (
    <div>
      <CartIcon count={cartCount} />
      <ProductCard
        name="Lavandas svece"
        price={24}
        onAdd={() => setCartCount(cartCount + 1)}
      />
    </div>
  );
}

function CartIcon({ count }) {
  return <span>Grozs ({count})</span>;
}

function ProductCard({ name, price, onAdd }) {
  return (
    <div>
      <h2>{name}</h2>
      <p>${price}</p>
      <button onClick={onAdd}>Pievienot grozam</button>
    </div>
  );
}

Kas notiek, kad pircējs noklikšķina uz „Pievienot grozam”:

  1. Pogas onClick izsauc onAdd, kas izsauc setCartCount.
  2. React atjaunina cartCount state no 0 uz 1.
  3. React pārrenderē Shop, nododot count={1} komponentam CartIcon.
  4. Lapā tagad redzams „Grozs (1)”. Neviens nerakstīja kodu, kas saka „atrod groza tekstu un nomaini to” — ekrāns seko datiem.

Ievērojiet arī ierobežojumus. Šis skaitītājs atrodas pārlūkprogrammas atmiņā. Atjaunojot lapu, tas atkal ir 0. Lai saglabātu grozu, jums tas jāsaglabā ilgstošā vietā — sīkdatnē, pārlūkprogrammas krātuvē vai datu bāzē caur jūsu backend. React pārvalda ekrānu; tas neglabā jūsu datus.

Kur React ietilpst tīmekļa lietotnē

DaļaKo tā daraBiežākās izvēles
UI bibliotēkaVeido saskarniReact
ValodaKurā valodā rakstīts kodsJavaScript vai TypeScript
Būvēšanas rīksPārvērš pirmkodu failos, ko ielādē pārlūkprogrammas; darbina izstrādes serveriVite
Ietvars (pēc izvēles)Pievieno maršrutēšanu, servera renderēšanu, datu ielādiNext.js, React Router
StilizēšanaKā tas izskatāsTailwind CSS, CSS faili
BackendBiznesa loģika, dati, noslēpumiNode.js, Python un citi
Datu bāzeGlabā datusPostgres un citi

Lietotne „Vite + React” renderējas pārlūkprogrammā (viena lapa, single-page app). Next.js lietotne var vispirms renderēt lapas serverī, kas palīdz meklētājprogrammām un pirmās ielādes ātrumam.

Biežāk lietotie termini

TerminsKo tas nozīmē
KomponentsAtkārtoti lietojama saskarnes daļa, rakstīta kā funkcija.
JSXPēc HTML līdzīga sintakse JavaScript iekšienē, ko lieto komponentu aprakstīšanai.
PropsIevades, ko padod komponentam.
StateDati, ko komponents atceras un kas laika gaitā var mainīties.
HookFunkcija, kas sākas ar use un pievieno komponentam tādas iespējas kā state.
Renderēšana / pārrenderēšanaReact izdomā, ko ekrānam jārāda, atkal pēc izmaiņām.
Vienas lapas lietotne (SPA)Lietotne, kas ielādējas vienreiz un atjaunina lapu ar JavaScript, nevis ielādē jaunas lapas.
Servera puses renderēšana (SSR)Lapas HTML ģenerēšana serverī pirms nosūtīšanas.
npm paketeAtkārtoti lietojama koda bibliotēka, ko var instalēt, piemēram, datuma izvēlētāju vai diagrammu bibliotēku.
React NativeSaistīts projekts pamatlietotņu veidošanai mobilajām ierīcēm.

Biežākās kļūdas un nepareizi priekšstati

  • „React ir programmēšanas valoda.” Tā ir bibliotēka, kas rakstīta JavaScript (vai TypeScript) un tiek lietota no tās.
  • „React glabā manus datus.” State atrodas pārlūkprogrammā un pazūd, atjaunojot lapu. Pastāvīgiem datiem vajadzīgs backend un datu bāze.
  • Noslēpumu ievietošana React kodā. Viss React lietotnē tiek nosūtīts apmeklētāja pārlūkprogrammai. API atslēgas tur ir publiskas. Glabājiet tās serverī.
  • „React lietotnes nevar gūt vietu meklēšanā.” Renderēšana tikai klientā ir vājāka meklēšanai, bet iepriekšēja renderēšana vai servera renderēšana to lielākoties novērš.
  • Milzīgi komponenti. Viens 1000 rindu komponents ir grūti droši mainīt gan cilvēkiem, gan MI. Lūdziet mazākus.
  • Pieņemt, ka React tīmekļa lietotne ir tālruņa lietotne. Tā darbojas pārlūkprogrammā, arī tālruņos, bet nav App Store lietotne.

Ko prasīt no sava MI veidotāja

  • „Sadali šo lapu mazos, nosauktos komponentos un pasaki, kurā failā atrodas katrs no tiem.”
  • „Padari ProductCard komponentu atkārtoti lietojamu, ar name, price un image kā props.”
  • „Saglabā grozu datu bāzē, lai tas saglabājas pēc lapas atjaunošanas.”
  • „Visas API atslēgas glabā serverī; React kodam jāizsauc mūsu pašu API.”
  • „Pievieno ielādes un kļūdu stāvokļus datiem, kas nāk no servera.”
  • „Ja šajās lapās svarīga redzamība meklētājprogrammās, iepriekš renderē tās vai izmanto servera renderētu uzstādījumu.”
  • „Vienkāršā valodā paskaidro, ko nozīmē šī kļūda un no kura komponenta tā nāk.”

Plašākam skatījumam skatiet frontend un backend, bet MI rakstītā koda pārskatīšanai — kā pārskatīt MI ģenerētu kodu.

React Mythex

Ja neprasāt citu, Mythex jaunos projektus sāk ar Vite + React + TypeScript + Tailwind, un tērzēšanas laikā darbojas tiešraides priekšskatījums. Pirmajā uzvednē varat norādīt citu uzstādījumu — piemēram, „Izmanto Next.js” vai „vienkārša statiska HTML nosēšanās lapa” — un Mythex to izvēlas pēc tā, ko rakstāt; šim nolūkam nav iestatījumu ekrāna. Dokumentācijas lapa par tehnoloģiju izvēli izskaidro iespējas. Koda redaktors bezmaksas plānā ir tikai lasāms; Pro plānā varat rediģēt React kodu tieši un eksportēt projektu, lai turpinātu strādāt citur.

Jautājumi

Kas ir React vienkāršos vārdos?

React ir JavaScript bibliotēka lietotāja saskarņu veidošanai. Ekrānus veidojat no atkārtoti lietojamām daļām, ko sauc par komponentiem, piemēram, pogas, produkta kartītes vai visas lapas, un React atjauno to, kas redzams ekrānā, kad mainās pamatā esošie dati.

Vai React ir ietvars vai bibliotēka?

React sevi dēvē par bibliotēku: tas koncentrējas uz saskarnes veidošanu. Uz tā balstīti ietvari, piemēram, Next.js, pievieno tādas lietas kā maršrutēšanu, servera renderēšanu un datu ielādi.

Kāpēc MI lietotņu veidotāji izmanto React?

React ir viens no visplašāk izmantotajiem veidiem, kā veidot tīmekļa saskarnes, tāpēc MI modeļiem ir milzīgs daudzums React koda un dokumentācijas, no kuras mācīties. Tā komponentu struktūra arī labi atbilst nelielām, mērķtiecīgām izmaiņām.

Vai React ir slikts SEO?

Pats par sevi nē. React lietotne, kas viss renderē pārlūkprogrammā, dažiem meklētājprogrammu robotiem ir grūtāk nolasāma, taču React var arī iepriekš renderēt vai renderēt serverī, piemēram, ar Next.js, un tas lielāko daļu šīs problēmas atrisina.

Vai React ir tas pats, kas React Native?

Nē. React veido tīmekļa saskarnes, kas darbojas pārlūkprogrammā. React Native izmanto tos pašus principus, lai veidotu iOS un Android pamatlietotnes. Tie dala koncepcijas, bet ne lielāko daļu savu būvbloku.

Mythex · Pricing · Veidojiet jebko ar AI · Tīmekļa vietņu un lietotņu veidnes · Mythex salīdzinājumā · AI lietotņu veidošanas glosārijs · Bezmaksas rīki lietotņu veidošanai ar AI · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)