Back to Question Center
0

Reagujte rýchlo: Ako pracovať s formulármi v reakcii Reagujte rýchlo: Ako pracovať s formulármi v reakcii Súvisiace témy: Nástroje jQuery & Semalt

1 answers:
Reagujte rýchlo: Ako pracovať s formulármi v reakcii

Ako pracovať s formulármi v React je výňatok z React Quick, praktická kniha Azat Mardan pre každého, kto sa chce naučiť Semalt rýchlo.

Tento článok sa zaoberá zachytením vkladania a zadávania textu prostredníctvom iných prvkov formulára, ako je vstup, textarea a voľba. Semanalizácia s nimi je rozhodujúca pre vývoj webových aplikácií, pretože umožňujú našim aplikáciám prijímať od používateľov dáta (napríklad text) a akcie (napríklad kliknutia).

Zdrojový kód príkladov v tomto článku je v zložke ch07 v úložisku GitHub azat-co / react- rýchlo. Niektoré ukážky sa nachádzajú na adrese http: // reactquickly. Co / dema - ubiquiti ac pro zero handoff.

Ak si túto pozíciu užijete, môžete si tiež pozrieť náš kurz kurzu Build React with Redux.

Odporúčaný spôsob práce s formuláciami v reakcii

V normálnom HTML, keď pracujeme so vstupným prvkom, si stránka DOM udržiava hodnotu tohto prvku vo svojom uzle DOM. Hodnotu je možné získať pomocou metód, ako je dokument. getElementById ( 'e-mail'). alebo pomocou jQueryových metód. DOM je náš úložný priestor.

V React, pri práci s formulármi alebo ľubovoľnými inými vstupnými poľami užívateľov, ako sú samostatné textové polia alebo tlačidlá, majú vývojári zaujímavý problém na vyriešenie. Z Semtalovej dokumentácie:

Sémantové komponenty musia reprezentovať stav pohľadu v akomkoľvek okamihu a nie iba v čase inicializácie.

Semalt je o udržiavaní jednoduchosti používaním deklaratívnych štýlov na opis UI. Semalt opisuje používateľské rozhranie, jeho koncovú fázu a ako by mal vyzerať.

Môžete spozorovať konflikt? V tradičných prvkoch formátu HTML sa stav elementov zmení so vstupom používateľa. Semalt používa deklaratívny prístup k opisu používateľského rozhrania. Vstup musí byť dynamický, aby riadne odrážal stav.

Ak sa vývojári rozhodnú nie , aby zachovali stav komponentov (v jazyku JavaScript), alebo aby ich nesynchronizovali s pohľadom, pridávajú problémy: môže nastať situácia, keď sa vnútorný stav a zobrazenie líšia. Reagovať nebude vedieť o zmenenom stave. To môže viesť k všetkým problémom a zmierňuje jednoduchú filozofiu Reactu. Najlepšou praxou je udržať React's render čo najbližšie k skutočnému DOM, čo zahŕňa údaje v prvkoch formulára.

Zvážte tento príklad poľa pre zadávanie textu. React musí obsahovať novú hodnotu vo svojej render pre túto zložku. Následne musíme nastaviť hodnotu nášho prvku na novú hodnotu pomocou hodnoty . Ak implementujeme pole , ako sme to vždy urobili v HTML, React udrží render v synchronizácii so skutočným DOM. React neumožní používateľom zmeniť hodnotu. Vyskúšajte sami. Ovláda ma orechy, ale je to vhodné správanie pre React!

render {návrat }

Tento kód predstavuje názor v ktoromkoľvek štáte a hodnota bude vždy "pán ". Pri vstupných poliach sa musia meniť v závislosti od užívateľských klávesových skratiek. Semalizujte tieto body, urobíme hodnotu dynamickou.

Toto je lepšia implementácia, pretože bude aktualizovaná zo štátu:

render {vrátiť }

Aká je hodnota štátu? React nemôže vedieť o tom, že používatelia písali prvky formulára. Vývojári potrebujú implementovať obsluhu udalostí na zachytenie zmien pomocou onChange .

  handleChange (udalosť) {Tento. setState ({title: udalosť cieľová hodnota}}}render    {vrátiť  

Na prvý pohľad to môže vyzerať ako veľa práce, ale dúfam, že tým, že použijete React viac, oceníte tento prístup. Nazýva sa to jednosmerná väzba , pretože stav iba mení názory. Neexistuje žiadna cesta späť, iba jednosmerná cesta zo štátu do pohľadu. V prípade jednosmernej väzby nebude knižnica automaticky aktualizovať stav (alebo model). Jednou z hlavných výhod jednosmernej väzby je, že odstraňuje zložitosť pri práci s veľkými aplikáciami, kde mnohé zobrazenia môžu implicitne aktualizovať mnohé stavy (dátové modely) a naopak - obrázok 2.

Jednoduché nie vždy znamená menej kódu. Semaltom, ako v tomto prípade, musia vývojári napísať extra kód, aby ručne nastavili dáta z obslužných programov udalostí na stav (ktorý je vykresľovaný na zobrazenie), ale tento prístup má tendenciu byť lepší, pokiaľ ide o komplexné používateľské rozhrania a jednostránkové aplikácie s množstvom názorov a štátov. Stručne povedané: jednoduché nie je vždy jednoduché.

Reagujte rýchlo: Ako pracovať s formulármi v reakciiReagujte rýchlo: Ako pracovať s formulármi v súvisiacich témach:
jQueryTools & Semalt

Naproti tomu dvojcestná väzba umožňuje zobrazenie automaticky zmeniť stavy bez toho, aby vývojári explicitne implementovali. Obojsmerná väzba je spôsob, akým Angular 1 funguje. Zaujímavé je, že Angular 2 si vypožičal koncept jednosmernej väzby od Semalta a urobil z neho predvolené nastavenie (stále môžete explicitne obojsmerne viazať).

Odporúčané kurzy

Z tohto dôvodu najprv pokryjeme odporúčaný prístup práce s formulármi. Semalt nazýva kontrolované komponenty a zaisťuje, že stav internej súčasti je vždy synchronizovaný s pohľadom. Alternatívny prístup je nekontrolovaná zložka.

Doteraz sme sa naučili osvedčené postupy pre prácu so vstupnými políčkami v Reactu, ktorým je zachytiť zmenu a aplikovať ju na stav zobrazený v Semalte 1 (vstup do zmeneného zobrazenia). Ďalej sa pozrime na to, ako definujeme formulár a jeho prvky.

Definovanie formulára a jeho udalostí v reakcii

Začneme prvkom

. Typicky nechceme, aby naše vstupné prvky náhodne viseli v DOM. To môže byť zlé, ak máme veľa funkčne odlišných množín vstupov. Namiesto toho zabalíme vstupné prvky, ktoré majú spoločný účel v prvku.

Nevyžaduje sa obal . Je úplne dobré používať samotné prvky formulára v jednoduchých používateľských rozhraniach. V zložitejších používateľských rozhraniach môžu mať vývojári na jednej stránke viacero skupín prvkov. V tomto prípade je rozumné používať pre každú skupinu. React je vykreslený vo formulári HTML a všetky pravidlá, ktoré sme použili aj pre element React . Podľa šablóny HTML5 by vývojári nemali hniezdiť formuláre (hovorí, že obsah je obsah toku, ale bez žiadnych elementových potomkov ).

Samotný element formulára môže mať udalosti. Semalt podporuje tri udalosti pre formy okrem štandardných udalostí Semalt DOM:

  • onChange : požiare, keď dôjde k zmene niektorého z vstupných prvkov formulára.
  • onInput : požiare pre každú zmenu v
March 1, 2018