Komentáře k článku

Píšeme vlastní React

Způsob, jakým nám React umožňuje psát deklarativní uživatelské rozhraní, které je následně efektivně vykreslováno, je přinejmenším úžasný. Většina vývojářů pravděpodobně hrubou představu o tom, jak algoritmus hledání změn virtuálního DOMu a samotný rendering funguje, má.

Zpět na článek

12 komentářů k článku Píšeme vlastní React:

  1. vojta tranta

    ID prvku vypisovaného v poli a nespolehlivé memoize
    Zajímavé, já se ve svých hrátkách nedostal k diffování vDOMu a DOMu.

    Nicméně bych tady jednu věc připomněl.

    Chápu, že to je naivní hračka, ale nebude zde fungovat – mazání a přehazování prvků stejného typu (myslí spíš typ funkce a ne typ elementu) v poli – protože používáš jako id index: .${index} – proto má také React onu slavnou speciální prop key, aby se předešlo prohazování prvků stejného typu v poli.

    Další věc, na kterou jsem při konstruování „vlastního Reactu“ narazil byla „nevhodnost“ použití funkcí pro reprezentaci uzlů.

    Řekněme, že máme komponentu Label v headeru a třeba v patičce. Memoize si zapatuje, že v hlavičce dávám jako argumentu Label hodnotu vítejte a v patičce na shledanou. Takže pokaždé, když se mi změní celá aplikace, tak je mi memoize na houby, protože se navzájem přepíše – jednou se volá Label s vítejte a v zápětí s na shledanou.

    Výše jsem zmínil typ komponenty – to může být třeba jméno funkce, která komponentu renderu, ale to pomůže pouze s vypisováním prvků za sebou – kdy hrozí nejjednoznačnost referencování elementu ve stromu přes index. V případě dvojího použití komponenty Label bychom potřebovali dvě instance pro Label v headeru a Label v patičce. React, myslím, tohle dělá – funkcionální komponenty jsou jenom API (asi, nezkoumal jsem to) a React je obaluje instancí, protože se pro tohle hodí víc. Instance pak může být přiřazené ID podle své polohy ve stromu a má jednoduše naimplementované shouldComponentUpdate neboť je jistota, že instance té které komponenty je unikátní vůči její poloze v DOMu / vDOMu.

    Já jsem se na instancioalizování komponent vykašlal a udělal jsem memory-leak shouldComponentUpdate: https://github.com/vojtatranta/supertiny-app-lib/blob/master/components/should-component-update.js

  2. Diskobolos

    Proč ne čistý JS?
    Autore, příště to piš v čistém JS. Je to více edukativní a zbytečně tím neotrávíš velké procento zájemců o tuto tématiku. Čím víc transpilace, tím víc cool, co? Běžte už s tím někam…

    1. dominik-selmeci

      Re: Proč ne čistý JS?
      Čím menej závislostí, tým lepšie. Preto som dal prednosť vue.js namiesto reactu, ktorý môžem (a nemusím) písať v čistom javascripte.

    2. Jarda

      Re: Proč ne čistý JS?
      Tak teď nechápu o čem mluvíš. Vždyť to je čistý javascript. Na co přesně narážíš? Asi vidíš, něco co jsem přehlédl…

      1. Hmmm

        Re: Proč ne čistý JS?
        Tiez som neporozumel, ale co mne trochu prekazalo a stazovalo citatelnost boli arrow functions v kode. Same o sebe su super ak pisem kratke atomicke funkcie v ramci metody, napriklad pre cykly, ale uz ich nepouzivam ak pisem metody v classe, pretoze ono to slovicko „function“ predsa len trochu sprehladnuje kod aj vdaka tomu, ze IDE ho highlightne.

    3. vojta tranta

      Re: Proč ne čistý JS?
      Je to čistý Javascript, příklady se normálně spouští.

      Nechápu tenhle slepej a útočnej hejt, autor se snaží podělit se o znalosti a pak se dočte tohle, to bych se na to na jeho místě vysr***.

      Pokud nejsi srovnanej s tim, že web vyvíjí rychlým tempem a budeš se muset pořád něco učit, tak doporočuju jít pracovat do státní zprávy, ideálně na ministerstvo financí, tam frčej ještě na Cobolu a MS-Dos.

      1. dominik-selmeci

        Re: Proč ne čistý JS?
        Nie som hejter. Povedzme si veci na rovinu. Podpora const a arrow definícia funkcií je už na celkom dobrej úrovni, až na IE11.
        Ale kde majú prehliadače podporu export-u?

    4. Martin Hassman

      Re: Proč ne čistý JS?

      Autor s tím šel někam. Konkrétně na Zdroják. A pokud přijde znovu, má dveře otevřené. A nemusíte se osobně považovat za velké procento zájemců o tuto problematiku, psycholog by řekl, že je to nezdravé.

Napsat komentář

Tato diskuse je již příliš stará, pravděpodobně již vám nikdo neodpoví. Pokud se chcete na něco zeptat, použijte diskusní server Devel.cz

Zdroj: https://www.zdrojak.cz/?p=19256