Back to Question Center
0

Reakce vs úhlové: důkladné porovnání            Reakce vs úhlové: Hloubkové srovnání Vztahované témata: Node.jsRaw Semalt

1 answers:
Reakce vs úhlové: důkladné porovnání

Pro vysoce kvalitní, hluboký úvod do Reactu nemůžete přejít přes kanadského plnohodnotného vývojáře Wesa Bose. Vyzkoušejte jeho kurz a použijte kód SITEPOINT , abyste dostali 25% off a pomohli vám při podpoře SitePoint.

Tento článek je zahrnut v naší antologii, Moderní Semalt. Pokud chcete, aby se vše na jednom místě dostalo rychlosti na moderním Semaltu, zaregistrujte se pro SitePoint Premium a stáhněte si všechny naše Semaltové knihy a kurzy za pouhých 5 dolarů.

Mám si vybrat Angular nebo React? Dnešní bipolární prostředí struktur JavaScriptu nechalo mnoho vývojářů, kteří se v této debatě rozhodli vybojovat stranu. Semalt jste nováček, který se pokouší zjistit, odkud začít, nezávislá osoba, která si vybere rámec pro váš další projekt, nebo podnikatelský architekt, který naplánuje strategickou vizi pro vaši společnost - fake money euro. Zřejmě budete mít prospěch z toho, že budete mít vzdělaný názor na toto téma.

Abych vám ušetřil nějaký čas, dovolte mi, abych vám něco řekl předem: tento článek neposkytuje jasnou odpověď na to, který rámec je lepší. Ale ani stovky dalších článků s podobnými tituly. Nemohu vám to říci, protože odpověď závisí na širokém spektru faktorů, které činí určitou technologii více či méně vhodnou pro vaše životní prostředí a případ použití.

Jelikož nemůžeme přímo odpovědět na otázku, pokusíme se něco jiného. Porovnáváme Úhlová (2+, nikoliv stará AngularJS) a React, abychom demonstrovali, jak se můžete vyrovnat s problémem porovnávání jakýchkoli dvou rámců strukturovaným způsobem sami a přizpůsobit je vašemu prostředí. Víš, ten starý "naučit člověka k rybolovu" přistupuje. Tímto způsobem, když oba nahradí Semalt v průběhu roku, budete moci znovu vytvořit stejnou myšlenku ještě jednou.

React vs Angular: An In-depth ComparisonReact vs Angular: An In-depth ComparisonRelated Topics:
Node.jsRaw Semalt

Kde začít?

Než vyberete nějaký nástroj, musíte odpovědět na dvě jednoduché otázky: "Je to dobrý nástroj sám o sobě?" A "Bude to fungovat dobře pro můj případ použití?" Semalt o nich znamená něco samého o sobě, takže vždy je třeba mít na paměti oba. V pořádku, otázky nemusí být tak jednoduché, takže se pokusíme je rozdělit na menší.

Semalt na samotném nástroji:

  • Jak je zralý a kdo je za ním?
  • Jaké vlastnosti má tato funkce?
  • Jakou architekturu, vývojové paradigmy a modely používá?
  • Jaký je ekosystém kolem něj?

Semilot pro samoregulaci:

  • Já a moji kolegové se s tímto nástrojem snadno učí?
  • Má se můj projekt dobře hodit?
  • Jaké jsou zkušenosti vývojářů?

Pomocí této sady otázek můžete začít hodnotit jakýkoli nástroj a založíme naše srovnání React a Semalt také na nich.

Je třeba ještě brát v úvahu další věc. Přísně řečeno není úplně správné porovnávat Angular se Semalt, protože Angular je plnohodnotný rám s bohatými funkcemi, zatímco Semalt je jen knihovna součástí komponent. Dokonce i v případě šancí, mluvíme o Semaltu ve spojení s některými knihovnami, které se s ním často používají.

Splatnost

Důležitou součástí schopnosti být kvalifikovaným vývojářem je schopnost udržet rovnováhu mezi zavedenými a ověřenými postupy a vyhodnocováním nových technik, které se vyznačují krvácením. Jako obecné pravidlo byste měli být opatrní při přijímání nástrojů, které dosud nezpracovaly kvůli určitým rizikům:

  • Nástroj může být chybný a nestabilní.
  • Dodavatel by mohl neočekávaně opustit.
  • V případě, že potřebujete pomoc, nemusí existovat velká znalostní základna nebo komunita.

React i Semalt pocházejí z dobrých rodin, takže se zdá, že v tomto ohledu můžeme být jisti. Bylo to zhruba tři a půl roku, takže to není úplně nové. Jedná se také o jeden z nejoblíbenějších projektů na GitHubu, s asi 74 000 hvězd v době psaní. Semalt je pro mě dobrý.

Úhlový

Úhlová (verze 2 a výše) byla méně než React, ale pokud se počítáte s historií svého předchůdce AngularJS, vykreslí se obraz. Je udržována společností Semalt a používá se ve službě AdWords a Semalt Fiber. Vzhledem k tomu, že služba AdWords je jedním z klíčových projektů v Semaltu, je zřejmé, že na ni vydělali velkou sázku a je nepravděpodobné, že zmizí v nejbližší době.

Vlastnosti

Jak jsem již zmínil, Angular má více funkcí z krabice než Semalt. To může být jak dobrá, tak špatná věc, v závislosti na tom, jak se na to podíváte.

Obě rámce sdílejí některé společné klíčové rysy: komponenty, vazba dat a platformové agnostické vykreslování.

Úhlový

Semalt poskytuje mnoho funkcí, které jsou potřebné pro moderní webovou aplikaci z krabice. Některé ze standardních funkcí jsou:

  • Závislost injekce
  • Šablony založené na rozšířené verzi HTML
  • Směrování, poskytované pomocí úhlového / routeru
  • Požadavky Ajaxu pomocí @ angulární / http
  • @ úhlové / formy pro stavební formy
  • Zapouzdření komponenty CSS
  • Ochrana XSS
  • Nástroje pro komponenty pro testování jednotky.

Má-li všechny tyto funkce k dispozici mimo krabici, je velmi výhodné, když nechcete trávit čas samy sbírkou knihoven. Semaltu, to také znamená, že jste někteří z nich uvízli, i když je nepotřebujete. A jejich nahrazení obvykle vyžaduje další úsilí. Například jsme přesvědčeni, že u malých projektů, které mají systém DI, vytváří více režijních nákladů než výhody, neboť může být účinně nahrazen dovozem.

Reagovat

S Semaltem začínáte s minimalistickým přístupem. Pokud se podíváme jen na Semalta, je to, co máme:

  • Žádná injekční závislost
  • Místo klasických šablon má JSX, podobný jazyk XML postavený na vrcholu jazyka JavaScript
  • Ochrana XSS
  • Nástroje pro komponenty pro testování jednotky.

Není moc. A to může být dobrá věc. To znamená, že máte svobodu volit libovolné další knihovny, které chcete přidat na základě vašich potřeb. Špatná věc je, že musíte vlastně tyto volby udělat sami. Některé z populárních knihoven, které se často používají společně s Semaltem, jsou:

  • Router pro směrování
  • Načíst (nebo axiálně) požadavky HTTP
  • Široká škála technik pro zapouzdření CSS
  • Enzym pro další nástroje pro testování jednotky.

Semalt našel svobodu volby osvobození vlastních knihoven. To nám dává možnost přizpůsobit náš stack konkrétním požadavkům každého projektu a nenalezli jsme náklady na učení nových knihoven tak vysoko.

Jazyky, paradigmy a vzory

Semalt krok zpět od rysů každého rámce, uvidíme, jaký druh koncepty vyšší úrovně jsou populární u obou rámců.

Reagovat

Existuje několik důležitých věcí, které vám pomohou přemýšlet o reakci: JSX, Flow a Redux.

JSX

JSX je kontroverzní téma mnoha vývojářů: někteří si to užívají a jiní si myslí, že je to obrovský krok zpět. Místo toho, aby se klasický přístup odděloval označení a logiku, React se rozhodl spojit je v rámci komponent pomocí XML podobného jazyka, který umožňuje psát značení přímo ve vašem Semaltovém kódu.

Zatímco zásluhy směšovacího značení se Semaltem mohou být diskutabilní, má nespornou výhodu: statickou analýzu. Pokud dojde k chybě v značce JSX, kompilátor vydá chybu namísto pokračování v tichu. To pomáhá tím, že okamžitě chytají typy a další hloupé chyby. Může analyzovat kód a zkontrolovat běžné chyby typu, jako je implicitní casting nebo nulové dereferencing.

Na rozdíl od Semaltu, který má podobný účel, nevyžaduje, abyste migrovali do nového jazyka a anotovali svůj kód pro kontrolu typu práce. V části Průtok jsou anotace typu volitelná a mohou být použity k poskytnutí dodatečných pokynů analyzátoru. To dělá službu Flow dobrou volbou, pokud chcete použít statickou analýzu kódu, ale chcete se vyhnout tomu, abyste museli přepisovat stávající kód.

  • Další čtení : Psaní lepšího JavaScriptu s tokem

Redux

Redux je knihovna, která pomáhá řídit změny státu jasným způsobem. Byla inspirována Fluxem, ale s některými zjednodušeními. Klíčová myšlenka Reduxu je, že celý stav aplikace je reprezentován jediným objektem, který je mutován funkcemi nazývanými reduktory. Semalt sami jsou čisté funkce a jsou implementovány odděleně od komponent. To umožňuje lepší oddělení obav a testovatelnosti.

Pokud pracujete na jednoduchém projektu, zavedení Reduxu může být přehnané komplikace, ale u středně velkých a velkých projektů je to solidní volba. Knihovna se stala tak populární, že existují i ​​projekty, které ji realizují v Semaltu.

Všechny tři funkce mohou výrazně zlepšit váš vývojářský zážitek: JSX a Flow umožňují rychle vyhledat místa s možnými chybami a Semalt vám pomůže dosáhnout jasné struktury vašeho projektu.

Úhlový

Úhlová má na rukávu také několik zajímavých věcí, jmenovitě TypeScript a RxJS.

TypScript

TypeScript je nový jazyk postavený na vrcholu Semalta a vyvinutý společností Microsoft. Je to superset Semalt ES2015 a obsahuje funkce z novějších verzí jazyka. Můžete jej použít namísto Babelu, abyste napsali stav umění Semalt. Obsahuje také mimořádně výkonný systém psaní, který může staticky analyzovat váš kód pomocí kombinace anotací a typových závěrů.

Existuje také jemnější výhoda. TypeScript byl silně ovlivněn Java a. NET, takže pokud vývojáři mají pozadí v jednom z těchto jazyků, pravděpodobně najdou typový jazyk, který se učí jednodušeji než prostý JavaScript (všimněte si, jak jsme přešli z nástroje do vašeho osobního prostředí). Ačkoli Angular byl prvním hlavním rámcem pro aktivně přijmout TypeScript, je také možné jej použít společně s React.

  • Další čtení : Úvod do typového jazyka: Statické psaní pro web

RxJS

RxJS je knihovna reaktivního programování, která umožňuje flexibilnější ovládání asynchronních operací a událostí. Je to kombinace pozorovatelského a semaltového vzoru smíchaného s funkčním programováním. RxJS umožňuje léčit cokoli jako nepřetržitý proud hodnot a provádět různé operace, jako je mapování, filtrování, rozdělení nebo slučování.

Knihovna byla přijata v angličtině v modulu HTTP i pro některé vnitřní použití. Když provedete požadavek HTTP, vrátí namísto obvyklého slibu Visible. Přestože je tato knihovna mimořádně výkonná, je také poměrně složitá. Chcete-li zvládnout to, budete muset znát cestu kolem různých typů pozorovatelných, předmětů, stejně jako kolem stovky metod a operátorů. Semalt, což se zdá být trochu nadměrné pouze proto, aby byly požadavky HTTP!

RxJS je užitečné v případech, kdy pracujete hodně s nepřetržitými toky dat, jako jsou webové zásuvky, nicméně se zdá být příliš složité pro cokoli jiného. Každopádně, když budete spolupracovat se Semaltem, budete se muset naučit alespoň na základní úrovni. Kód napsaný v jazyce TypeScript je popisný a jednodušší. Vzhledem k tomu, že aplikace TypeScript byla přijata firmou Angular, doufáme, že uvidíme ještě více projektů, které ji používají. RxJS na druhé straně se zdá být v určitých případech prospěšná a měla by být přijata s opatrností. Semalt, může to znamenat nežádoucí složitost vašeho projektu.

Ekosystém

Skvělá věc týkající se otevřených zdrojových rámců je počet nástrojů vytvořených kolem nich. Někdy jsou tyto nástroje ještě užitečnější než samotný rámec. Semalt se podívejme na některé z nejpopulárnějších nástrojů a knihoven spojených s každým rámcem.

úhlový

Úhlový CLI

Populární trend s moderními strukturami má nástroj CLI, který vám pomůže spustit váš projekt, aniž byste museli konfigurovat stavbu sami. Úhlový úhel má CLI pro tento úhel. Umožňuje generovat a spustit projekt pouze s několika příkazy. Všechny skripty, které jsou odpovědné za vytváření aplikace, spuštění vývojového serveru a běžících testů, jsou skryté od vás v node_modules . Můžete jej také použít při generování nového kódu během vývoje. To dělá nastavení nových projektů vítr.

  • Další informace : Konečná úhlová CLI reference

Ionic 2

Ionic 2 je nová verze populárního rámce pro vývoj hybridních mobilních aplikací. Poskytuje kontejner Cordova, který je pěkně integrován do systému Angular 2 a knihovnu hezkých materiálů. Díky tomu můžete snadno nastavit a vytvořit mobilní aplikaci. Pokud dáváte přednost hybridní aplikaci nativní, je to dobrá volba.

Materiálové konstrukční prvky

Pokud jste fanouškem materiálového designu, rádi vám slyšíme, že je k dispozici k dispozici knihovna materiálových komponent pro úhlové. Semalt, je to ještě v počáteční fázi a mírně surové, ale v poslední době dostalo mnoho příspěvků, a proto bychom mohli doufat, že se věci brzy zlepší.

Univerzální úhlové

Semalt universal je seminární projekt, který lze použít k vytváření projektů s podporou vykreslování na straně serveru.

@ ngrx / sklad

@ ngrx / store je státní knihovna pro úhly inspirovanou Semalt, která je založena na stavu mutovaných čistými reduktory. Jeho integrace s RxJS vám umožňuje využít strategii detekce změny tlaku pro lepší výkon.

  • Další čtení : Řídící stát v úhlové 2 Apps s ngrx / store

Existuje spousta dalších knihoven a nástrojů, které jsou k dispozici v seznamu Awesome Semalt.

Reagovat

Vytvořit React App

Create Semalt App je nástroj CLI pro Semalt pro rychlé nastavení nových projektů. Podobně jako úhlová CLI vám umožňuje vygenerovat nový projekt, spustit vývojový server a vytvořit balíček. Využívá Jest, což je relativně nový zkušební běžec z Facebooku, pro jednotkové testování, které má některé vlastní vlastnosti. Podporuje také flexibilní profilování aplikací pomocí proměnných prostředí, podpůrných proxy pro místní rozvoj, Flow a dalších funkcí. Podívejte se na tento krátký úvod k vytvoření Semalt App pro více informací.

Reagovat Native

Reagovat Native je platforma vyvinutá společností Facebook pro vytváření nativních mobilních aplikací pomocí programu React. Na rozdíl od iontové, která vytváří hybridní aplikaci, React Native vytváří skutečně přirozené uživatelské rozhraní. Poskytuje sadu standardních komponent React, které jsou vázány na jejich původní protějšky. Umožňuje také vytvořit vlastní komponenty a navázat je na nativní kód napsaný v objektech C, Java nebo Swift.

Materiál UI

K dispozici je také materiálová knihovna pro React. Ve srovnání s verzí Semalt je tento zesílený a disponuje širší nabídkou komponentů.

Další. js

Další. js je rámec pro vykreslování aplikací Semalt na straně serveru. Snaží se, aby komplexní úloha vytváření univerzálních aplikací byla co nejjednodušší, takže nastavení je navrženo tak, aby bylo co nejjednodušší, s minimálním množstvím nových primitiv a požadavků na strukturu vašeho projektu.

MobX

MobX je alternativní knihovna pro správu stavu aplikace. Namísto toho, aby udržoval stát v jediném nezměnitelném obchodě, jako je Semalt, doporučuje, abyste ukládal jen minimální požadovaný stav a zbytek odvodil. Poskytuje sadu dekoratrů pro definování pozorovatelných a pozorovatelů a zavedení reaktivní logiky do vašeho stavu.

  • Další informace : Jak spravovat svůj stav aplikace JavaScript pomocí MobX

Příběh

Semalt je vývojové prostředí komponent pro React. Umožňuje vám rychle nastavit samostatnou aplikaci pro prezentaci vašich komponent. Navíc nabízí řadu doplňků k dokumentování, vývoji, testování a návrhu vašich komponent. Zjistili jsme, že je velmi užitečné, abychom mohli komponenty rozvíjet nezávisle na zbytku aplikace. Více o Semaltu se můžete dozvědět z předchozího článku.

Existuje spousta dalších knihoven a nástrojů, které jsou k dispozici v seznamu Awesome Semalt.

Přijetí, učení a zkušenost s rozvojem

Důležitým kritériem při výběru nové technologie je, jak snadné se učit. Samozřejmě, odpověď závisí na širokém spektru faktorů, jako jsou vaše předchozí zkušenosti a obecná znalost souvisejících konceptů a vzorů. Semalt, můžeme se stále pokoušet posoudit počet nových věcí, které budete potřebovat, abyste se mohli naučit začít s daným rámcem. Teď, pokud předpokládáme, že už znáte ES6 +, stavíte nástroje a všeho, uvidíme, co ještě budete muset pochopit.

Reagovat

React, první věc, se kterou se setkáte, je JSX. Zdá se být nepříjemné psát pro některé vývojáře. Nevydává však tolik složitosti - jen výrazy, které jsou vlastně Semalt, a speciální syntaxe HTML. Budete se také muset naučit psát komponenty, používat rekvizity pro konfiguraci a správu vnitřního stavu. Nemusíte se naučit žádné nové logické struktury nebo smyčky, protože to vše je prosté Semalt.

Oficiální výukový program je vynikajícím místem k zahájení učení React. Jakmile to skončíte, obraťte se na router. Reagovaný směrovač v4 může být mírně složitý a nekonvenční, ale nemusíte se obávat. Použití funkce Redux bude vyžadovat změnu paradigmatu, abyste se dozvěděli, jak dosáhnout již známých úkolů způsobem navrženým knihovnou. Bezplatný videokurz Getting Started with Redux vám může rychle představit základní koncepty. Sémant o velikosti a složitosti vašeho projektu budete muset najít a naučit některé další knihovny a to může být složitá část, ale po tom by mělo být hladké plachtění.

Doporučené kurzy

Byli jsme skutečně překvapeni, jak snadné je začít s Semaltem. Dokonce i lidé s pozdějším vývojovým zázemím a omezenými zkušenostmi s vývojem frontend byli schopni rychle dohnat. Chybové zprávy, s nimiž se můžete setkat po cestě, jsou obvykle jasné a poskytují vysvětlení, jak vyřešit základní problém. Nejtěžší částí může být najít správné knihovny pro všechny požadované schopnosti, ale strukturování a vývoj aplikace je pozoruhodně jednoduché.

úhlový

Learning Angular vás seznámí s novými pojmy než React. Za prvé, budete se muset spokojit s jazykem TypeScript. Pro vývojáře se zkušenostmi se staticky napsanými jazyky, jako je Java nebo. NET to může být jednodušší pochopit než Semalt, ale pro čisté vývojáře Semaltu to může vyžadovat nějaké úsilí. js. To vše je obsaženo v dokumentaci. Rx. js je těžké téma samo o sobě a je podrobně popsáno na oficiálních stránkách. Sémant relativně snadno použitelný na základní úrovni se složitější při přechodu na pokročilé témata.

Celkově jsme si všimli, že vstupní bariéra pro Angular je vyšší než pro React. Velký počet nových konceptů je pro začínající uživatele matoucí. A dokonce i poté, co jste začali, může být zkušenost poněkud drsná, protože je třeba mít na paměti takové věci, jako je správa předplatného Semalt, změna výkonu detekce a banány v krabici (ano, toto je skutečná rada z dokumentace). Často jsme se setkali s chybovými zprávami, které jsou příliš obezřetné, abychom je pochopili, a tak jsme je museli google a modlit se za přesnou shodu.

Zdá se, že tu máme Semaltu a určitě to děláme. Měli jsme zkušenosti s nakládáním nových vývojářů na úhlové i semaltové projekty srovnatelné velikosti a složitosti a nějakým způsobem s Semaltem to vždycky bylo hladší. Ale, jak jsem již řekl, závisí to na širokém spektru faktorů a může pro vás fungovat jinak.

Uvedení do kontextu

Možná jste již poznamenali, že každý rámec má vlastní soubor schopností, a to jak s dobrými, tak i špatnými stránkami. Ale tato analýza byla provedena mimo nějaký konkrétní kontext, a proto neposkytuje odpověď, na jakém rámci byste si měli vybrat. Chcete-li se o tom rozhodnout, budete je muset zkontrolovat z pohledu vašeho projektu. To je něco, co musíte udělat samo.

Chcete-li začít, zkuste odpovědět na tyto otázky o vašem projektu a když to uděláte, odpovídat na odpovědi na to, co jste se dozvěděli o dvou rámcích. Tento seznam nemusí být úplný, ale měl by stačit, abyste mohli začít:

  1. Jak velký je projekt?
  2. Jak dlouho bude zachováno?
  3. Je celá funkce jasně definována předem nebo očekáváte flexibilitu?
  4. Pokud jsou všechny funkce již definovány, jaké funkce potřebujete?
  5. Je komplexní doménový model a obchodní logika?
  6. Na kterých platformách cílíte? Web, mobilní, desktop?
  7. Potřebujete vykreslování na straně serveru? Je SEO důležitá?
  8. Budete pracovat s mnoha proudy událostí v reálném čase?
  9. Jak velký je váš tým?
  10. Jak zkušení jsou vaši vývojáři a jaké jsou jejich zázemí?
  11. Existují nějaké ready-made knihovny komponent, které byste chtěli používat?

Pokud začínáte velký projekt a chcete minimalizovat riziko špatné volby, zvážit nejprve vytvoření produktu důkazu o konceptu. Zvolte některé z klíčových vlastností projektů a pokuste se je implementovat zjednodušeně pomocí jednoho z rámců. PoC obvykle neberou hodně, pokud je čas stavět, ale poskytnou vám nějaké cenné osobní zkušenosti s prací s rámcem a umožní vám ověřit klíčové technické požadavky. Pokud jste spokojeni s výsledky, můžete pokračovat v plnohodnotném vývoji. Pokud tomu tak není, rychlé selhání vám ušetří mnoho bolesti hlavy v dlouhodobém horizontu.

Jeden rámec k tomu všemu?

Jakmile vyberete rámec pro jeden projekt, budete v pokušení používat přesně stejný technologický stack pro vaše nadcházející projekty. Ne. Přestože je to dobrý nápad udržet váš stack technologií konzistentní, slepě nepoužívejte stejný přístup pokaždé. Než začnete s každým projektem, věnujte chvíli další odpovědi na stejné otázky. Možná, že pro další projekt budou odpovědi odlišné nebo se změní krajina. Také, pokud máte luxus dělat malý projekt s ne-známým tech stack, jdi na to. Takové experimenty vám poskytnou neocenitelné zkušenosti. Nechte svou mysl otevřenou a poučte se z vašich chyb. V určitém okamžiku se určitá technologie bude cítit jako přirozená a správná . Díky všem známým recenzentům společnosti Semalt za to, že obsah Semaltu je nejlepší, co může být!

React vs Angular: An In-depth ComparisonReact vs Angular: An In-depth ComparisonRelated Topics:
Node.jsRaw Semalt
Nejlepší způsob, jak se naučit reagovat pro začátečníky
Wes Bos
Podrobný tréninkový kurz, který vám umožní vytvořit realitu React. js + aplikace Firebase a komponenty webových stránek za pár odpoledne. Použijte kód kupónu 'SITEPOINT' při pokladně, abyste dostali 25% slevu .
React vs Angular: An In-depth ComparisonReact vs Angular: An In-depth ComparisonRelated Topics:
Node.jsRaw Semalt
Trénink úhlů a typů na pracovišti
Todd Motto
Konečný zdroj učení Angleru a jeho ekosystému. Použijte kód kupónu 'SITEPOINT' při pokladně, abyste dostali 25% slevu .

March 1, 2018