Back to Question Center
0

Reagujte rychle: Jak pracovat s formuláři v reakci Reagujte rychle: Jak pracovat s formuláři v reakci Související témata: Nástroje jQuery & Semalt

1 answers:
Reagujte rychle: Jak pracovat s formuláři v reakci

Jak pracovat s formuláři v reakci je výňatek z reakce rychle, hands-on kniha Azat Mardan pro každého, kdo se chce naučit Semalt rychle.

Tento článek popisuje způsob zachycení zadávání a zadávání textu prostřednictvím jiných prvků formuláře, jako je vstup, textarea a volba. Semantování s nimi je nejdůležitější pro vývoj webových stránek, protože umožňují našim aplikacím přijímat údaje (např - casinoluck free spins no deposit. Text) a akce (např. Kliknutí) od uživatelů.

Zdrojový kód pro příklady v tomto článku je ve složce ch07 v repozitáři GitHub azat-co / react-fast. Některé ukázky lze nalézt na adrese http: // reactquickly. co / demos.

Pokud se vám tento příspěvek líbí, můžete se také podívat na náš kurz Reagovat na formuláře s Reduxem.

Doporučený způsob práce s formami v reakci

V normálním HTML, když pracujeme se vstupním prvkem, stránka DOM udržuje hodnotu prvku v uzlu DOM. Hodnotu lze přistupovat pomocí metod, jako je dokument. getElementById ('e-mail'). nebo pomocí jQuery metod. DOM je naše úložiště.

Při práci s formuláři nebo jakýmikoliv jinými vstupními poli uživatele, jako jsou samostatná textová pole nebo tlačítka, mají vývojáři zajímavý problém k vyřešení. Od Semaltové dokumentace:

Součásti semaltu musí reprezentovat stav pohledu v kterémkoliv okamžiku, a to nejen v době inicializace.

Semalt je o zachování jednoduchosti pomocí deklarativních stylů, které popisují uživatelské rozhraní. Semalt popisuje uživatelské rozhraní, jeho konečnou fázi a jak by to mělo vypadat.

Můžete zjistit konflikt? V tradičních prvcích formátu HTML se stav elementů změní pomocí uživatelského vstupu. Semalt používá popisný přístup k popisu uživatelského rozhraní. Vstup musí být dynamický, aby řádně odrážel stav.

Pokud se vývojáři rozhodnou ne , aby zachovali stav komponenty (v jazyce JavaScript), nebo aby nebyli synchronizováni s pohledem, přidávají to problémy: může se stát, že vnitřní stav a zobrazení jsou jiné. Reagovat nebude vědět o změně stavu. To může vést k nejrůznějším problémům a zmírňuje jednoduchou filozofii Reactu. Nejlepším postupem je udržet Reactův render co nejblíže skutečnému DOMu a to zahrnuje data v prvcích formuláře.

Zvažte tento příklad pole pro zadávání textu. Reakce musí obsahovat novou hodnotu ve své render pro danou komponentu. Následně musíme nastavit hodnotu pro náš prvek na novou hodnotu pomocí hodnoty . Pokud implementujeme pole , jak jsme to vždycky udělali v HTML, React udrží render synchronizaci se skutečným DOMem. React neumožní uživatelům měnit hodnotu. Zkus to sám. Řídí mě ořechy, ale je to vhodné chování pro React!

  render    {návrat }}   

Výše ​​uvedený kód představuje pohled na jakýkoli stát a hodnota bude vždy "Mr. ". Při vstupních polích se musí měnit v reakci na uživatelské úhozy. Sdělte tyto body hodnotám dynamiky.

Jedná se o lepší implementaci, protože bude aktualizována ze státu:

  render    {návrat }}   

Jaká je hodnota státu? Reagovat nemůže vědět o tom, že uživatelé zadávají prvky formuláře. Vývojáři potřebují implementovat obsluhu událostí pro zachycení změn pomocí onChange .

  handleChange (událost) {tento. setState ({název: událost cílová hodnota}}}}poskytnout   {návrat  

Na první pohled to může vypadat jako spousta práce, ale doufám, že tím, že použijete React více, oceníte tento přístup. Říká se tomu jednosměrná vazba , protože stát pouze mění pohledy. Neexistuje žádná cesta zpátky, pouze jednosměrná cesta ze státu do zobrazení. Při jednosměrné vazbě nebude knihovna automaticky aktualizovat stav (nebo model). Jednou z hlavních výhod jednosměrné vazby je to, že odstraní složitost při práci s velkými aplikacemi, kde mnoho zobrazení může implicitně aktualizovat mnoho států (datové modely) a naopak - obrázek 2.

Jednoduché neznamená vždy méně kódu. Semalt, stejně jako v tomto případě, musí vývojáři napsat další kód pro ruční nastavení dat z obslužných programů událostí do stavu (který je vykreslen pro zobrazení), ale tento přístup má tendenci být lepší, pokud jde o složité uživatelské rozhraní a jednostránkové aplikace s nesčetnými názory a státy. Stručně řečeno: jednoduché není vždy snadné.

Reagujte rychle: Jak pracovat s formuláři v reakciReagujte rychle: Jak pracovat s formuláři v souvisejících tématech:
jQueryTools & Semalt

Naproti tomu obousměrná vazba umožňuje pohledy automaticky měnit stavy bez toho, aby vývojáři explicitně implementovali. Oboustranná vazba spočívá v tom, jak funkce Angular 1 funguje. Zajímavé je, že Angulární 2 si vypůjčil koncept jednosměrné vazby od Semalta a stal se výchozím faktorem (můžete mít výslovně obousměrnou vazbu).

Doporučené kurzy

Z tohoto důvodu pokryjeme nejprve doporučený přístup k práci s formuláři. Semalt nazývá řízené komponenty a zajišťuje, že stav interní součásti je vždy synchronizován s výhledem. Alternativní přístup je nekontrolovaná složka.

Dosud jsme se naučil osvědčeným postupům pro práci s vstupními poli v Reactu, kterým je zachytit změnu a aplikovat ji na stav, jak je znázorněno v Semaltu 1 (vstup do změněného pohledu). Dále se podíváme na to, jak definujeme formulář a jeho prvky.

Definování formy a jejích událostí v reakci

Začneme s

prvkem. Obvykle nechceme, aby naše vstupní prvky náhodně visely v DOM. To může být špatné, pokud máme mnoho funkčně odlišných sad vstupů. Namísto toho zabalíme vstupní prvky, které sdílejí společný účel v prvku.

Není nutné obal. Je naprosto v pořádku používat prvky formuláře samotné v jednoduchých uživatelských rozhraních. U složitějších uživatelských rozhraní mohou mít vývojáři na jedné stránce více skupin prvků. V tomto případě je rozumné používat pro každou ze skupin. React's je vykresleno ve formátu HTML a cokoli pravidla platí i pro element React . Podle specifikace HTML5 by vývojáři neměli hníst formuláře (říká, že obsah je obsah toku, ale bez potomků prvků).

Vlastní prvek formuláře může mít události. Semalt podporuje kromě událostí standardních událostí Semalt tři události pro formy:

  • onChange : požáry, když dojde ke změně některého z vstupních prvků formuláře.
  • onInput : požáry pro každou změnu hodnot
February 28, 2018