Rdeact vs. React Native - co dneska použít?

Rdeact vs. React Native - co dneska použít?
« kdy: 07. 06. 2021, 17:19:49 »
Delam neco jako kaloricketabulky.cz, a momentalne v Reactu:

Kód: [Vybrat]
  "dependencies": {
    "react": "^16.5.0",
    "react-dom": "^16.5.0",
    "react-scripts-ts": "2.17.0",
    "react-search-field": "^1.2.1"
  },
  "devDependencies": {
    "@types/jest": "^23.3.2",
    "@types/node": "^10.9.4",
    "@types/react": "^16.4.14",
    "@types/react-dom": "^16.0.7",
    "typescript": "^3.0.3"
  }

Tak co, mam to dostatecne moderni? Nebo jsem zaspal dobu a uz je to 1-2 roky stare vsechno?
« Poslední změna: 07. 06. 2021, 19:23:49 od Petr Krčmář »


Re:Rdeact vs. React Native - co dneska použít?
« Odpověď #1 kdy: 08. 06. 2021, 18:08:23 »
neviem co od nas tu chces pocut ked si predsa vies vygooglit aj sam, ze react 16.5 vysiel v septembri 2018 a typescript 3.0 v juli 2018, takze je to uz takmer 3 roky stare :D odvtedy vyslo viacero novych verzii Reactu aj s novymi funkcionalitami, najvacsie halo bolo okolo predstavenia "React Hooks" v 16.8 vo februari 2019 a najnovsia verzia je 16.14 resp. 17.0. TypeScript je medzicasom na verzii 4.3.

ak to je novy projekt nevidim dovod nezacinat s najnovsimi verziami vsetkych kniznic ktore pouzivas, ak je to stary projekt, odporucam tak raz za rok preliezt vsetky kniznice co pouzivas a poupgradovat ich.., pouzivat 1-2 roky stare veci je akotak v pohode, ale zvykne sa stavat ze ked to prelezie 3+ rokov, tak sa uz neda poriadne pogooglit ani dokumentacia k tvojej starsej verzii ani navod ako to upgradnut. Pri React-e je to este dost casto uplne v pohode lebo sa celkom snazia drzat si aku taku backwards compatibility, ale pri inych knizniciach to tak byt nemusi. Zazil som si svoje aj v JS svete, aj v Java svete, aj v Python svete.

Re:Rdeact vs. React Native - co dneska použít?
« Odpověď #2 kdy: 08. 06. 2021, 19:48:08 »
napíš do konzoly:

Kód: [Vybrat]
yarn upgrade-interactive

Re:Rdeact vs. React Native - co dneska použít?
« Odpověď #3 kdy: 08. 06. 2021, 20:23:32 »
Delam neco jako kaloricketabulky.cz, a momentalne v Reactu:

Kód: [Vybrat]
  "dependencies": {
    "react": "^16.5.0",
    "react-dom": "^16.5.0",
    "react-scripts-ts": "2.17.0",
    "react-search-field": "^1.2.1"
  },
  "devDependencies": {
    "@types/jest": "^23.3.2",
    "@types/node": "^10.9.4",
    "@types/react": "^16.4.14",
    "@types/react-dom": "^16.0.7",
    "typescript": "^3.0.3"
  }

Tak co, mam to dostatecne moderni? Nebo jsem zaspal dobu a uz je to 1-2 roky stare vsechno?
Vo svete webdevu je všetko čo je staré jeden (1) deň považované za obsolete a deprecated. Preto sa tejto nepríčetnej komunite plnej hipsterov a pošukov z Bay area vyhýbam ako sa len dá. Čo týždeň to nový frejmvork, nový nástroj na buildy, nový nástroj na hento tamto a nové doporučené praktiky. Toto čo sa deje posledných cca 10 rokov ohľadom webu je jedno veľké psycho a trpím aj ja ako uživateľ, keď som neustále konfrontovaný s "vylepšeniami", redesignami a podobnými chobotinami ktoré v skutočnosti dobre fungujúcu vec totálne domrvia. Nasrac!

P.S. stále nie som zmierený s posledným redesignom root.cz a tento dizajn fóra mi príde otrasný, plytvanie miestom a prispôsobené na patlafóny, hlavne, že stále neopravili ten super kokotský systém na citácie a keď pošlem niekomu PM tak moja správa sa nikde neuloží. Chápem, že to robia zadarmo, ale...do riti.
« Poslední změna: 08. 06. 2021, 20:26:00 od nehalem »

Re:Rdeact vs. React Native - co dneska použít?
« Odpověď #4 kdy: 08. 06. 2021, 23:23:25 »
napíš do konzoly:

Kód: [Vybrat]
yarn upgrade-interactive

Diky za tip, to jsek neznal. Ale proc mi to dalo react jenom na verzi 16.8, kdyz uz je novejsi?


Heledtel ja ted pisu react web, a fakt se u toho dost potim, nejvic mi zustava rozum stat jak musim updatovat vsechno pres setState, navic to nekdy nedava smysl, proc musim napr. delt komplet kopii objektu kdyz na nem chci aktualizovat jen jeden field.

Je to brutalne casove narocne, a znovu se mi potvrzuje spravnost toho, ze jsem sel do Vue. No a ted uz zase se pokousim o react... ach jo.



L..

  • ***
  • 144
    • Zobrazit profil
    • E-mail
Re:Rdeact vs. React Native - co dneska použít?
« Odpověď #5 kdy: 09. 06. 2021, 06:06:04 »
Heledtel ja ted pisu react web, a fakt se u toho dost potim, nejvic mi zustava rozum stat jak musim updatovat vsechno pres setState,

No mě taky zůstává rozum stát, proč používáš staré a (relativně) nešikovné class komponenty a ne moderní funkcionální komponenty s hooky. Oni ty novější verze knihoven tu fakt nejsou jen proto, aby frikulíni mělo dobrý pocit, že mají něco "moderního".

navic to nekdy nedava smysl, proc musim napr. delt komplet kopii objektu kdyz na nem chci aktualizovat jen jeden field.

Pokud tohle nechápeš, tak máš základní mezery ve znalostech o Reactu a jeho principech. Není pak divu, že se ti v něm dělá blbě, když netušíš, jak vlastně funguje. Immutabilita objektů je princip, který umožňuje jednoduše zjistit, zda dostáváš starý nebo změněný objekt pouhým porovnáním referencí, bez nutnosti dělat deep compare. Což celou operaci dost zrychluje.

Re:Rdeact vs. React Native - co dneska použít?
« Odpověď #6 kdy: 09. 06. 2021, 22:32:08 »
Heledtel ja ted pisu react web, a fakt se u toho dost potim, nejvic mi zustava rozum stat jak musim updatovat vsechno pres setState,

No mě taky zůstává rozum stát, proč používáš staré a (relativně) nešikovné class komponenty a ne moderní funkcionální komponenty s hooky. Oni ty novější verze knihoven tu fakt nejsou jen proto, aby frikulíni mělo dobrý pocit, že mají něco "moderního".

navic to nekdy nedava smysl, proc musim napr. delt komplet kopii objektu kdyz na nem chci aktualizovat jen jeden field.

Pokud tohle nechápeš, tak máš základní mezery ve znalostech o Reactu a jeho principech. Není pak divu, že se ti v něm dělá blbě, když netušíš, jak vlastně funguje. Immutabilita objektů je princip, který umožňuje jednoduše zjistit, zda dostáváš starý nebo změněný objekt pouhým porovnáním referencí, bez nutnosti dělat deep compare. Což celou operaci dost zrychluje.

Hele a jakto ze mi funguje v reactu nasetovat neaco na hulvata this.state.foo.amount = 100; a pak dat this.setState({}); a ono se to stejne pak updatuje?

Me jde o to, ze jestli v tom jsou jenom perfromance issues, tak bych se na to vykvakl alespon v prubehu prototypovani.

L..

  • ***
  • 144
    • Zobrazit profil
    • E-mail
Re:Rdeact vs. React Native - co dneska použít?
« Odpověď #7 kdy: 10. 06. 2021, 07:40:35 »
Hele a jakto ze mi funguje v reactu nasetovat neaco na hulvata this.state.foo.amount = 100; a pak dat this.setState({}); a ono se to stejne pak updatuje?

Pokud ti to zařve, že foo je undefined, tak ti to funguje. Pokud ti to někde ukáže 100, tak ti to nefunguje, protože ve stavu aplikace foo nemáš, ale stejně ti ho to ukazuje.

Tipuju, že tam máš nějakou prasárnu jako že to foo si někde ukládáš do proměnné a tu následně zobrazuješ. V tom případě prvním statementem změníš objekt a následně setState({}) vyvoláš re-render celého podstromu. A proto se ti to aktualizuje. Když ale budeš pak chtít změnit amount třeba na 200, tak ti to nepůjde, už proto, že ti ten nastavovací příkaz vynadá "Cannot set property 'amount' of undefined". (A zase budeš nadávat, jak je ten React nanic, když si za to přitom můžeš sám svým prasením.)

Me jde o to, ze jestli v tom jsou jenom perfromance issues, tak bych se na to vykvakl alespon v prubehu prototypovani.

Ne, to není o performance, to je o konzistenci stavu aplikace. Přestaň prasit, používej funkcionální komponenty jako normální člověk, pak budeš dělat:

setFoo({...fFoo, amount});

což je kratší a jednodušší než to, co jsi napsal.