Gå til hovedinnhold

Hvilket rammeverk er bedre? 2021

Det er tre rammer for å konstruere nettformål som hver frontend-utvikler har hørt om: Reager, Vue.jsog Vinkel.

React er et UI-bibliotek, Angular er et fullverdig frontend-rammeverk, mens Vue.js er et progressivt rammeverk.

De kan brukes praktisk talt om hverandre for å konstruere frontend-formål, men de er ikke 100% identiske, så det er smart å sjekke dem og oppfatte variasjonene deres.

Hvert rammeverk er komponentbasert og tillater rask opprettelse av UI-alternativer.

Imidlertid har alle en unik konstruksjon og struktur - så først vil vi se på deres arkitektoniske variasjoner for å forstå filosofien bak dem.

arkitektur

Reager

React implementerer ikke en valgt utfordringskonstruksjon, og som du kanskje ser fra offisielt “Hello World” -eksempel under kan du begynne å bruke React med bare noen få spor av kode.

ReactDOM.render ( Hei Verden! , doc.getElementById ('root'));

React kan brukes som et UI-bibliotek for å gjengi deler uten å pålegge en valgt utfordringskonstruksjon, og det er derfor det ikke er et rammeverk.

Reager elementer er de minste konstruksjonsblokkene med React-apper. De er ekstra effektive enn DOM-deler som et resultat av React DOM gjør det positivt å erstatte dem effektivt når som helst når en ting endres.

komponenter er større konstruksjonsblokker som skisserer objektive og gjenbrukbare gjenstander for bruk gjennom applikasjonen. De nøyer seg med innganger kjent som rekvisitter og produserer deler som deretter kan vises til forbrukeren.

React er avhengig av JavaScript, men det er likevel i stor grad blandet med jsx (JavaScript XML), en syntaksutvidelse som lar deg lage deler som inkluderer HTML og JavaScript på samme tid.

Alt du oppretter med JSX kan opprettes med React JavaScript API, men de fleste utbyggere favoriserer JSX som et resultat av at det er ekstra intuitivt.

Vue

Vue.js kjernebibliotek fokuserer bare på View-laget. Det er kjent som et progressivt rammeverk som et resultat av at du kan forlenge ytelsen med offisielle og tredjepartspakker, tilsvarende Vue-ruter or Vuex, for å vise det i et presist rammeverk.

Selv om Vue bare ikke er strengt relatert til MVVM (Model-View-ViewModel) -prøven, var designen delvis imponert over den. Med Vue jobber du helt med ViewModel-laget for å være sikker på at den aktuelle informasjonen blir behandlet i en metode som gjør det mulig for rammeverket å gjengi en oppdatert visning.

Vue mal syntaks hjelper deg med å lage Vis deler, og den kombinerer kjent HTML med bestemte direktiver og alternativer. Denne mal-syntaksen er mest populær, til tross for at JavaScript og JSX i tillegg støttes.

komponenter i Vue er små, selvstendige, og vil bli gjenbrukt gjennom applikasjonen. Komponenter i én fil (SFC) med .vue utvidelse inkluderer HTML, CSS og JavaScript, slik at alle relaterte koder ligger i en enkelt fil.

SFC-er er den veldig nyttige metoden for å ordne kode i Vue.js-oppgaver, spesielt større. Verktøy som tilsvarer Webpack eller Browserify er påkrevd for å transpile SFC-er til fungerende JavaScript-kode.

Vinkel

I denne teksten diskuterer jeg Angular 2, og aldri den primære modellen for rammeverket som nå ofte kalles AngularJS.

AngularJS, det unike rammeverket, er et MVC (Model-View-Controller)) rammeverk. Men i Vinkel 2, det er ingen streng tilknytning til MV * -mønstre, da det vanligvis er komponentbasert.

Prosjekter i Angular er strukturert i Moduler, komponenterog Tjenester . Hvert Angular-verktøy har i det minste ett rotelement og en rotmodul.

Hvert element i Angular inneholder en mal, en klasse som definerer den anvendte logikken, og MetaData (dekoratører). Metadataene for et element forteller Angular stedet å oppsøke konstruksjonsblokkene det må lage og gjeldende synet.

Kantede maler er skrevet i HTML, men kan legemliggjøres Vinklet malsyntaks med bestemte direktiver for å sende ut reaktiv informasjon og gjengi en rekke deler, blant forskjellige problemer.

Tjenester i Angular brukes av komponenter til å delegere virksomhetslogiske plikter tilsvarende å hente informasjon eller validere enter. De er en klar del av vinkelformål. Selv om Angular ikke implementerer bruken, anbefales det ekstremt å bygge apper som et sett med forskjellige selskaper som kan gjenbrukes.

Angular er innebygd TypeScript, så bruken er veldig nyttig for å få den mest sømløse ekspertisen, men vanlig JavaScript kan også støttes.

popularitet

Reager

React er uten tvil en av de hotteste JavaScript-oppgavene med 160k stjerner på GitHub. Den er utviklet og vedlikeholdt av Facebook, og den brukes internt i mange oppgaver. I tillegg driver den over 2 millioner nettsteder, i tråd med BuiltWithsin utnyttelsesstatistikk.

Vue

Ut av de tre rammene har Vue i hovedsak flest stjerner på GitHub, med 176 1 stjerner. Utfordringen er utviklet og ledet av eks-Googler Evan You. Det er en veldig solid, upartisk utfordring innen open source-gruppen og brukes av over XNUMX million nettsteder, i tråd med BuiltWith.

Vinkel

Angular er utviklet av Google, men overraskende nok blir det ikke brukt i noen få av deres flaggskipvarer som tilsvarer Search eller Youtube. Det brukes vanligvis i bedriftens oppgaver, og det driver over 97,000 nettsteder, hovedsakelig basert på BuiltWithinformasjon.

Det er den minst stjernen blant de mange tre rammene, med 68 XNUMX stjerner på GitHub. Men når de bytter fra Angular 1 til Angular 2, opprettet de et helt nytt depot som et alternativ til kontinuerlig AngularJS utfordring, som i tillegg har 59 XNUMX stjerner.

Økosystem

Åpne kildekode-pakker forhindrer verdifull tid når du oppretter formål. Ikke bare det, men de er vanligvis høyere enn skreddersydde deler og pakker som et resultat av at de er kamptestede.

Det er viktig å se på tilbudet av brukervennlige deler, temaer og forskjellige instrumenter som kan vise deg hvordan du kan lage nye alternativer ekstra enkelt.

Reager

Mange front-end-formål er avhengig av verdensstatslige administrasjon til forhandlerdata, tilsvarende hvem som er pålogget og forskjellige forbrukerinnstillinger.

Den hotteste utfordringen for JavaScript statsadministrasjon er Redux. De fleste utbyggere bruker offisielle React-bindinger for Redux, som vedlikeholdes av Redux-gruppen.

På grunn av React sitt rykte er det utrolig enkelt å oppdage deler og ferdige deler. De er alle bare et Google- eller GitHub-søk unna.

React økosystemet inneholder i tillegg Reager Native som tillater deg å konstruere opprinnelige iOS- og Android-formål fra en enkelt kodebase skrevet i React. Så React er generelt et fint alternativ for å konstruere mobilformål ved å bruke netto anvendt vitenskap.

React er en del av MERN-stakken, som inkluderer MongoDB, ExpressJS, React og NodeJS. Det fantastiske med denne blandingen er {at et} enkelt språk - JavaScript - driver hele verktøyet.

Vue

Selv om Redux kan brukes i Vue, er det ingen offisielle bindinger. Men det burde ikke være redd for deg som et resultat av Vuex er det offisielle statsadministrasjonsbiblioteket laget spesielt for Vue-formål. Bortsett fra å integrere veldig effektivt med Vue, er det enkelt å feilsøke ved hjelp av Vue's utviklerinstrumenter.

I de tidlige dagene av Vue var det tøffere å oppsøke bruksklare deler. Siden gruppen har vokst, er det en rekke inngående deler og overlegne deler som du bør bruke for å skynde deg med forbedringen.

For forbedring av mobilapper er det en kommende utfordring kjent som Weex. Weex er utviklet og brukt av Alibaba, men det er ikke like modent og svært effektivt som React Native. Hva er ekstra, fordi utfordringen er utviklet og brukt ekstra i Kina, er det tøffere å oppsøke dokumentasjon og alternativer til poeng på engelsk.

Vue integreres effektivt med Laravel, og det er derfor de vanligvis brukes kollektivt. Laravel presenterer full JavaScript og CSS stillas for å tillate bruk av Vue i nye oppgaver.

Vinkel

For statsadministrasjon i Angular, bør du bruke NgRx utfordring. Det har blitt imponert av Redux, men det er ikke desto mindre spesielt skapt for Angular.

Som med Vue og React er det mange deler som er klare til bruk som du kan importere til oppgavene dine. Det som knapt er helt annerledes med Angular er at det er mange offisielle deler i Vinkelmateriale utfordring. Dette er en offisiell utfordring fra Google som gir Material Design-deler til kantede formål.

Du kan konstruere mobilformål på tvers av plattformer i Angular-bruk NativeScript. Det hjelper Vue like effektivt, men Angular-hjelpen er ekstra moden.

Angular er en del av den velkjente MEAN-stakken som blander Angular med MongoDB, ExpressJS og NodeJS. I likhet med MERN-stakken, avhenger det helt av JavaScript for hver front-end og back-end.

Vanlige teknologier

Angular, React og Vue kan alle brukes til å utvikle Progressive Web Apps, også referert til som PWAer.

PWA-er bør ikke ha mobilformål, men nettformål som smarttelefonkunder kan legge til som snarveier til husdisplayet og levere et utseende og føles akkurat som lokale mobilapps.

Du kan oppdage premiummaler og pre-made formål for alle rammeverk, men Angular og React har ekstra premiumvalg tilgjengelig enn Vue.

Ytelse

Når du velger et rammeverk eller bibliotek, vil du ta hensyn til effektivitet like effektivt.

Under mange omstendigheter trenger du ikke å bekymre deg for effektivitet, spesielt hvis du konstruerer en liten utfordring. Imidlertid, jo ekstra en utfordring vokser i omfang og kompleksitet, kan effektivitet (og kan) vokse til å bli en prioritet.

Det er viktig å legge merke til at standarden for forbedring og å følge størst praksis i forhold til nettoeffektivitet er ekstra viktig enn valg av rammeverk.

Men siden det er noen effektivitetsmålinger og variasjoner, vil jeg se på dem og avklare hvordan alle kan ha en effekt på forbedringsarbeidet ditt.

JS Framework Benchmark: Angular vs React vs Vue

Resultatene av JS Framework Benchmark presentere at alle utfører ganske effektivt på de fleste referanseverdier, tilsvarende å opprette eller legge til rader i et skrivebord.

JS-målestokk

Som du kanskje ser ovenfor, er Vue betydelig langsommere enn Angular og React når du velger rader. På den motsatte siden bør Angular og React ikke være veldig miljøvennlige når de bytter rad.

Dette er de vesentlige variasjonene i gjengivelse av referanser - og vanligvis gir ikke merkbare resultater. Siden valg av rader er en ekstra utbredt ytelse enn å bytte rad, vil jeg si at denne målestokken plasserer Vue på tredjeplass bak Angular og React som deler høyest plass.

Når det innebærer mimring og oppstartstid, er React og Vue-rangering veldig effektivt, men Angular er litt tregere. Angular kan ta 150 ms i tillegg til et grunnleggende skript og krever ekstra mimring for å kjøre.

Perf Track: Angular vs React vs Vue

Perf Track av Google Chrome Labs stiller ut produseringsinformasjon fra 1000-tallet med nettsteder. Denne statistikken er påvirket av mange forskjellige problemer og aldri bare rammen om alternativ, men la oss ta en titt på tallene.

Perf Track

Første tilfredsstillende maling

Vue og React-nettsteder rangerer høyere for denne beregningen sammenlignet med Angular som kan ta ekstra tid i tillegg til og gjeldende innholdsmateriale for forbrukeren.

Største tilfredsstillende maling

Angular kan også være tregest blant de mange tre rammene når det gjelder å gjengi en hel webside, med bare 27 stk Angular-nettsteder som scorer innenfor akseptabelt variasjon.

Første inngangsforsinkelse

For alle de tre rammene er det mer enn 80 stk nettsteder som er akseptabelt for den primære inngangsforsinkelsen, som viser hvor mye det tar før forbrukeren kan jobbe sammen med websiden.

JavaScript Bytes

De mest lette formålene er langt de som er utviklet med Vue, med 68 stk Vue-apper som laster ned mindre enn 1 MB JavaScript. På den motsatte siden har Angular og React en tendens til å ha en større kodemåling.

Hvordan bruke disse beregningene

Du kan se et mønster fra disse figurene, men du bør ikke være for rask til å trekke konklusjoner. For den endelige avgjørelsen, for eksempel, kan et bevis veldig godt være at Vue brukes til å utvikle ekstra lette formål, mens Angular brukes til større oppgaver.

Statistikken kan hjelpe deg til å ta et utmerket valg, men du kan ikke bruke dem til å vise at ett rammeverk er raskere eller høyere enn det motsatte.

Avanserte funksjoner

For ekstra overlegne formål, bør front-end-rammeverket i bruk ha evnen til å utføre noen oppgaver som forbedrer effektiviteten og kan skaleres høyere.

To anvendte vitenskaper som kan være nøkkelen er server-gjengivelse (SSR) og virtualisering.

Reager

React hjelper gjengivelse på serversiden med den offisielle ReactDOMServer bunt. For virtualisering, bør du bruke en foretrukket tredjepartsenhet kjent som Reager virtualisert.

Vue

Gjengivelse på serversiden støttes i Vue like effektivt med den offisielle SSR-pakke. I tillegg kan du også bruke Nuxt.js rammeverk som er konstruert høyt på Vue og hjelper SSR.

Virtualiseringsvalgene i Vue burde dessverre ikke være så robuste. Etter min mening, Vue Virtual Scroll List er den aller beste oppløsningen for digital rulling, likevel er den litt buggy og aldri like stabil fordi valgene for React og Angular.

Vinkel

Angular har den offisielle Angular Universal pakke for SSR, og en offisiell komponent for digital rulling og miljøvennlig gjengivelse av enorme lister.

Læringskurve

Hvor enkelt er det å studere alle disse rammene?

For å svare på dette spørsmålet må vi se på kompleksiteten i hvert rammeverk og ideene de introduserer.

Reager

I sitt mest enkle brukstilfelle er React den minst kompliserte av de tre rammene. Det er fordi du bare må importere biblioteket, så kan du begynne å skrive React-verktøyet ditt med et par spor av kode.

Men bortsett fra Hello World-forekomsten, er de fleste React-formål komponentbaserte og gjengir ikke bare et par deler på websiden.

En faktor som noen utbyggere oppdager merkelig eller plagsom med React, er sannheten om at det å studere JSX er en enveiskjørt vei. Du kan bruke ukokt JavaScript så effektivt, men siden de fleste React-byggere bruker JSX, er det omtrent uunngåelig å studere.

Dette er den viktigste faktoren som kan gjøre React's studiekurve litt brattere, men bortsett fra det, er det et bibliotek som er enkelt å studere for byggere som kjenner JavaScript og oppfatter ideer om nettoforbedring.

Vue

Vue er litt mer komplisert å ordne enn React. Du kan bruke den som et bibliotek for å skissere deler som du bør bruke gjennom hele HTML-en - men akkurat som React, er det ikke slik de fleste oppgaver er konstruert.

De fleste Vue-oppgaver kan ha et rotelement som heter App.vue og ganske mange ungdomsdeler for å vise forskjellige problemer.

Når det innebærer syntaks, er den nye faktoren du trenger å studere Vue-mal-syntaksen, som kan være veldig enkel å forstå hvis du innser HTML. Grunnleggende direktiver, tilsvarende v-if og v-for for betinget gjengivelse og listegjengivelse, er enkle å forstå, selv for rookies.

I tillegg bevarer Vue's enkeltfildeler all frontend-koden på ett sted, noe som gjør det enkelt å forberede nye oppgaver.

Vue er den enkleste å studere, etter mitt syn på grunn av sin enkelhet og intuitive syntaks.

Vinkel

Angular har i hovedsak den mest kompliserte utfordringskonstruksjonen av de tre, og fordi det er et fullblåst frontend-rammeverk, avhenger det av ekstra ideer.

Bortsett fra deler, hjelper Angular moduler og selskaper. Det forventer at du skriver skriftlig og designer kodebasen din i en valgt metode som gjør utfordringen ekstra vedlikeholdbar når den skaleres opp.

Når det gjelder syntaksen, siden Angular fungerer best med TypeScript, er det viktig at du innser TypeScript når du konstruerer en Angular-utfordring.

Det samme som med Vue, må du i tillegg gjøre deg kjent med den HTML-lignende syntaksen med den hensikt å begynne å kode nye brukergrensesnittalternativer med Angular.

Etter min mening er Angular den tøffeste å studere for den typiske utvikleren som et resultat av at den er ekstra komplisert og avhenger av TypeScript.

Fremtidige spådommer

Mange open source-oppgaver og rammer forsvinner til glemsel og blir uvedlikeholdt. Bør du være redd for noen av rammene vi diskuterer her?

Selv om vi ikke helt vil forutsi hva som skjer, er løpende forbedringsarbeid en effektiv indikator på trivselen til disse oppgavene. Popularitet og fremgang er i tillegg viktige beregninger for å forutsi levetiden til en utfordring, så la oss sjekke ut alle rammer.

Reager

Reager v17.0 har blitt lansert, men overraskende nok inneholder den ingen nye alternativer for byggherrer.

Hovedendringen er at denne nye modellen gjør det enklere å forbedre React selv. Du kan forbedre bare noen få elementer av React fra den eldre modellen til den nyere, uten å måtte forbedre hele utfordringen.

Hvis verktøyet ditt er avhengig av alternativer som endres eller blir foreldet med den splitter nye modellen, kan du bevare den forrige modellen for å opprettholde denne ytelsen. Denne erstatningen gjør React til et utrolig langsiktig alternativ fordi det gjør det enklere å holde seg oppdatert med nye varianter.

React har vokst med 44 pc siden siste 12 måneder i ukentlige npm nedlastinger. I absolutte tall er det likevel i hovedsak den mest nedlastede av de tre oppgavene.

Vue

Vue 3 er utgitt i september 2020, og den takler mange kritiske punkter som Vue 2 har i gigantiske oppgaver. Den introduserer API for sammensetning som er imponert av Reager kroker og gjør det enklere å gjenbruke logikk gjennom deler.

Hele utfordringen ble omskrevet i TypeScript, noe som forbedrer TypeScript-hjelpen i nye Vue-oppgaver, mens i tillegg gjør utfordringen ekstra vedlikeholdbar.

Vue 3 er en sårt tiltrengt forbedring og gjør Vue til en større kamp for store oppgaver.

Vue ukentlige nedlastinger har vokst med 87 pc siden siste 12 måneder, noe som gjør Vue til det raskeste stigende rammeverket i relative setninger. Hvis Vue kan opprettholde denne fremdriftsprisen, kan den faktisk overgå Angular raskt.

Vinkel

Angular lanserte nylig Ivy Compiler. Det reduserer konstruksjonsforekomster, optimaliserer eiendeler, tillater raskere testing og forbedrer vanligvis utviklerkompetanse.

Angular-gruppen utgir hovedoppdateringer to ganger i løpet av 12 måneder, som kan innebære nye alternativer eller bare formidle rammeverket i kontroll med nye nettleservarianter.

Angular har vokst med runde 50 stk ukentlige nedlastinger siden siste 12 måneder, så det er likevel en foretrukket utfordring.

konklusjonen

Angular, React og Vue er alle under veldig livlig forbedring. De lanserer gjentatte ganger nye varianter og bevarer de rådende. Siden den nåværende grad av hjelp er overdreven i alle tilfeller, kan du trygt bruke noen av disse rammene.

Det er viktig å legge merke til at Angular bare ikke stiger like raskt som tidligere, mens Vue - til tross for at det begynte ekstra akkurat i det siste - ser ut til å stige ganske mye.

Som på forhånd erkjent, vil vi ikke forutsi hvilke rammer som vil være relatert i det lange løp, men hver utfordring har en fantastisk gruppe bak seg og er i stadig utvikling.

Målet mitt med denne teksten var å tydeliggjøre de arkitektoniske variasjonene, bryte ned alle rammes styrker og svakheter og evaluere dem der det er relevant.

Før du hopper inn i et helt nytt rammeverk, er det noen ting å tenke på.

For det første er gruppens ekspertise generelt et avgjørende problem når du velger en helt ny kunnskap.

På samme måte må du ta hensyn til ekspertisen som er tilgjengelig i ditt rom med den hensikt å leie byggherrer i utfordringen din.

Til slutt, i forhold til selve utfordringen, kan kompleksiteten og omfanget ha en innvirkning på ditt rammealternativ.

Ved å ta høyde for alle viktige variasjoner, håper jeg du kan løse det som er det aller beste frontend-rammeverket i dine mål og ønsker.



Dette innlegget har 0 kommentarer

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket *

Tilbake til toppen