allt
Företag
datavetenskap
design
utveckling
vår resa
Strategimönster
Tack! Din inlämning har mottagits!
Hoppsan! Något gick fel när du skickade in formuläret.
Tack! Din inlämning har mottagits!
Hoppsan! Något gick fel när du skickade in formuläret.
André Atalaia

februari 23, 2024

Min läsning

Vue.js vs React: vi byggde en app på båda ramarna

När du tänker på JavaScript-ramverk kommer du förmodligen att hamna fast mellan Vue.js och React, eftersom de råkar vara de mest populära inom JavaScript ekosystem. Så hur kan du bestämma vilken som är bäst lämpad för det projekt du ska koda eller hantera? Ska du först titta på själva ramverket och överväga dess inlärningskurva Eller analysera istället projektets storlek och komplexitet för att fatta ett korrekt beslut?

Om någon av dessa frågor kom dig i åtanke nyligen, oavsett om du är en front-end-utvecklare eller hanterar ett team, fortsätt läsa: Jag lägger ner händerna på jobbet och byggt en app på båda ramarna. Dess huvudsakliga mål var att tillåta oss, på Imaginärt moln, att rösta internt om vilka spel vi föredrar att köpa till PlayStation 4 vi har på vårt kontor - ex libris från våra lunchpauser!

I det här blogginlägget kommer jag att dela med mig av mina insikter, baserat på den erfarenhet jag hade med Vue.js och React. Från dess popularitet över tid, kamp, samhällsstöd och andra relaterade ämnen, kommer jag att rensa upp allt så att du kan få en bättre uppfattning om varje ramverk och vilka problem de löser.

blå pil till vänster
Imaginary Cloud-logotyp

En novell först

React backas upp av teknikjätten Facebook, ger stabilitet och långsiktigt stöd som en teknisk jätte kan ge. React blev öppen källkod i maj 2013, vilket gjorde det möjligt för dess community att skapa otaliga tredjepartsbibliotek för att hjälpa dig att uppnå önskat mål.

Alternativt skapades Vue.js av Evan You, en tidigare Google anställd som arbetade i deras Angular team. Evan hade visionen att skapa ett ramverk som kombinerade det bästa av React, Ember och Angular, för att tillhandahålla ytterligare funktioner och förbättra kodningsprestanda. Men eftersom Vue.js inte säkerhetskopieras av en teknisk jätte, är det förlitar sig på sitt aktiva samhälle för att driva den framåt.

blå pil till vänster
Imaginary Cloud-logotyp

Varför är Vue och React så populära?

Ökningen i popularitet för båda dessa ramverk tar kredit för de innovativa verktygen som både Vue.js och React erbjuder till Front-end-utvecklaren. Till exempel:

  • Virtuell DOM: om detta uttryck är nytt för dig måste jag ta ett steg tillbaka och förklara först vad DOM (Document Object Model) betyder. HTML är ett dokument med kapslade textelement (t.ex. en lista är inuti brödtexten och har listobjekt kapslade i den). Detta kan representeras som en graf, som kallas DOM. Front-end-utvecklare spenderar sin tid på att manipulera DOM med JavaScript (t.ex. visa en varning när användaren skickar in ett formulär med fel, föreslå text när användaren fyller i en sökruta etc.). Dessa manipuleringar är kostsamma när det gäller datorkraft och kodningsinsats. Frontutvecklare måste vara noga med att inte slösa bort dessa värdefulla resurser. React och Vue.js använder en virtuell DOM för att göra dessa operationer enklare. Istället för att ändra DOM utför ramverket operationer i en kopia av DOM istället, vilket sparar resurser och tid. På så sätt uppdateras bara de fragment som behöver uppdateras.
  • Komponentbaserad struktur: Vue.js och React använder båda denna struktur för att dra nytta av dess modularitet. Detta gör det möjligt för Front-end-utvecklare att återanvända komponenter och omstrukturera kod, förbättra utvecklarens produktivitet och påskynda hela utvecklingsprocessen.
  • Officiellt komponentbibliotek för att bygga mobilappar: både Vue.js och React erbjuder ett komponentbibliotek för att bygga mobilappar. Medan React erbjuder ReactNative, Vue.js erbjuder VueNative. VueNative är dock ett omslag kring ReactNative API: er, som låter dig använda Vue.js för att utveckla mobilappar närmare den ursprungliga implementeringen.

Enligt StackOverflow, Vue.js popularitet såväl som Reacts, har ökat genom åren, medan front-end-utvecklingsbranschen får mer och mer relevans över hela världen.

För att få en tydligare bild kontrollerade jag båda ramverkens aktivitet med tanke på antalet frågor som för närvarande är aktiva i StackOverflow. Här är vad jag hittade: medan Vue.js har cirka 50.000 frågor, Reactjs-taggen har nästan 180 000 frågor. Stor skillnad, eller hur?

En annan nyckelindikator som jag vågar dig titta på är npm (Node Package Manager) nedladdningar.

Number of npm downloads of Vue.js compared to React

Om detta ämne, jämför React vs Vue.js, du kan se att React fortfarande leder med en betydande marginal över Vue.js. Trots sina nedladdningar har Vue.js långsamt stigit genom åren.

Emellertid den största fördelen Vue.js har över React ses på Github-stjärnor. Ta en titt på grafiken nedan:

Number of Vue.js stars on Github comparing to React

Vue.js överträffade React i mitten av 2018 och fortsätter fortfarande i ledningen.

Detta är helt klart ett tecken på en stödjande gemenskap byggd kring aktiva Vue.js utvecklare, som ägnar sig åt att ständigt driva det framåt.

blå pil till vänster
Imaginary Cloud-logotyp

Vad vi har gjort exakt

Utmaningen? Vi har en ny PlayStation 4 på kontoret och alla argumenterade om vilka spel de skulle köpa och spela. Som praktikant kom jag för att rädda och byggde en app som gjorde det möjligt för människor att rösta på de mest populära spelen och bestämma vad de skulle köpa härnäst. Och eftersom Två är bättre än en, Jag byggde applikationen två gånger - först i Vue.js och sedan i React.

Backend-tjänsterna gjordes tillgängliga av ett API som kunde hantera JSON förfrågningar. Jag hade bara en grundläggande kunskap om hur man skriver grundläggande HTML och JavaScript (jag är praktikant), så ja, experimentet var att dyka djupt in i React och Vue.js, lära från grunden.

När det gäller kraven att uppfylla hade jag följande:

  • Godkännandeslutpunkter (vi bestämde oss för att använda sessionsautentisering)
  • CRUD-operationer över alla typer av data
  • Listning och filtrering på alla typer av data
  • Användaråtgärder som e-postbekräftelse, inloggning, utloggning, registrering och byte av lösenord.
blå pil till vänster
Imaginary Cloud-logotyp

Vilken är lättare att lära sig?

Du känner känslan: till en början kan det verka överväldigande och du börjar undra om det alls är en bra idé att gå igenom det. Samma sak hände mig, men när jag började förstå komponentens basstruktur blev det enklare och lättare att förstå. Jag gick igenom handledningarna, fiklade med egenskaper och gissade vilket resultat vi skulle ha baserat på dokumentationen vi läste.

Är Vue lätt att lära sig?

När jag gick igenom denna process märkte jag att supportdokumentationen för Vue.js är mycket mer ”utvecklarvänlig” än Reacts. Jag bestämde mig också för att gå först med Vue.js på grund av min bakgrundskunskap i HTML. Detta visade sig förbättra min kompetens och påverkade projektets totala varaktighet.

Är React lätt att lära sig?

React-dokumentationen är lite svårare att läsa, vilket resulterade i en långsam upptrappning jämfört med Vue.js, mestadels baserat på den extra ansträngningen att lära sig JSX.

Sammanfattningsvis är båda ganska lika i sin struktur, men Vue.js är lite lättare att lära sig eftersom det tillåter HTML och JSX.

blå pil till vänster
Imaginary Cloud-logotyp

Vilken är lättare att använda?

Precis som erfarna utvecklare gör var jag tvungen att analysera och välja vilka externa bibliotek som skulle användas. Bibliotek kan vara särskilt relevanta när man hanterar kärnuppgifter eftersom de förbättrar produktens kvalitet och minskar utvecklingsinsatsen.

Vilka bibliotek ska du använda i ett Vue.js program?

För Vue.js ville jag skapa komplexa användargränssnittselement men inbyggd implementering skulle ta mycket tid, därför använde jag Vuetify som har en rik dokumentation och en enkel installation. Att installera och importera biblioteket var allt som behövdes och det var klart att användas.

Att hantera applikationstillstånd och se till att applikationen anpassar sig till dess tillstånd i Vue.js är komplex och tidskrävande. Jag bestämde mig för att använda Vuex för att hantera applikationstillstånd. Detta var också enkelt att installera och lätt att använda.

Jag behövde också ansluta till servern och autentisera REST-förfrågningar. För att lösa detta problem följde jag Vue.js handledning och som rekommenderat använde jag axios, ett bibliotek som hanterar REST-förfrågningar och gör auktorisering lättare att hantera.

Slutligen använde jag View Router för att uppdatera och uppdatera användargränssnittet när webbadressen ändras, något som är mycket svårt att uppnå utan ett bibliotek.

Sammanfattningsvis använde vi följande bibliotek med Vue.js:

  • Vuetify: för att skapa komplexa användargränssnittselement
  • Vuex: för att hantera applikationstillstånd
  • Axios: för att integrera med REST API
  • View Router: för att uppdatera användargränssnittet när webbadressen ändras

Vilka bibliotek ska du använda i en React-applikation?

För React ville jag också skapa komplexa UI-element, men detta är inte enkelt att uppnå direkt. Därför använde jag Material UI, eftersom det gör det enkelt att bygga komplexa UI-element.

Jag använde också Stylade komponenter att konfigurera utseendet och känslan av användargränssnittet, eftersom det är ganska komplicerat att göra det med vanilla React. Det här är något som jag kämpade med i Vue.js, eftersom jag inte kunde hitta ett bra bibliotek för detta ändamål.

Redux kom till undsättning när jag behövde hantera applikationstillståndet. Detta är det mest populära biblioteket för detta ändamål i React-området. Det är lite mer komplext än Vue.Js alternativet, men eftersom det är väl dokumenterat spenderade jag inte för mycket tid på att leta efter ett bättre alternativ.

För att ta itu med REST-förfrågningarna fortsatte vi med axios eftersom jag redan var bekant med biblioteket. Det gav en bra lösning, liknande vad jag har i programmet Vue.js.

Slutligen löste jag routingproblemet med React Routing. Liksom Vue.js motsvarigheten gör det här biblioteket hela operationen enklare att hantera.

Sammanfattningsvis använde jag följande bibliotek med React:

  • Material UI: för att skapa komplexa användargränssnittselement
  • Stylade komponenter: för att ändra utseendet och känslan av UI-elementen
  • Redux: för att hantera applikationstillstånd
  • Axios: för att integrera med REST API
  • React Routing: för att uppdatera användargränssnittet när webbadressen ändras

New call-to-action

blå pil till vänster
Imaginary Cloud-logotyp

Vilken är bättre: Vue eller React?

Efter inlärningsprocessen, kodning och testning är det dags att dela med mig av mina insikter (släpp trumrullen!) :

  • Vue.js utvecklingen tog cirka 9 dagar (cirka 72 timmar)
  • Reagera utvecklingen varade cirka 13 dagar (cirka 104 timmar)

Baserat på ovanstående data kan jag säga att programmering i React tog oss cirka 30% längre tid än med Vue.js.

Så varför föredrog jag Vue.js istället för React?

Väl, Jag kunde påpeka några skäl:

  • Låg komplexitet av tutorials och hög kvalitet på dokumentation: Vue.js handledning var mer komplett än Reacts. Medan Vue.js ingår Vuex i sin officiella nybörjarhandledning inkluderade Reacts handledning inte Redux. Vuex dokumentation var också något bättre än Redux;
  • Bakgrundskunskap i HTML: vilket påverkade min uppstigning och följaktligen min prestation.

Baserat på min personliga erfarenhet kan jag nu säga att det skulle ta mycket mindre tid att utveckla projekt av samma eller liknande storlek eftersom jag redan har:

  • kunskapen för att manipulera butiksläge;
  • en bättre Förståelse för varje ramverk och dess verktyg;
  • Kunskap om tredjepartsbibliotek som underlättar arbetet och förbättrar utvecklingsprestandan när du räknar ut att fikla med dem.

Under det första utvecklingsstadiet hittade jag båda samhällena medan jag letade efter några förtydliganden. Till min förvåning kunde jag få alla svar på alla frågor jag hade online. Detta var verkligen en game-changer. Båda samhällena är mycket aktiva, med tusentals medlemmar som ofta publicerar sina kamper på plattformar som StackOverflow och hjälper andra användare med liknande frågor.

blå pil till vänster
Imaginary Cloud-logotyp

Vilken är roligare: Vue eller React?

Om du delar samma passion för kodning som jag, så håller du förmodligen med mig när jag säger att valet av ramverk påverkar din motivation och projektresultatet. Så ja, det är viktigt att förstå om du bestämmer dig för en teknik som kommer att slåss med dig eller utmana dig på ett bra sätt.

Är Vue kul att arbeta med?

Från min erfarenhet av vart och ett av dessa ramverk, Vue.js har en utmärkt programmeringsstil och mönster, bra dokumentation och en smidigare inlärningskurva för att få saker att rulla snabbare. Den har också en mycket komplett starthandledning som innehåller routing och butikshantering. Detta är definitivt en stor initial boost för nya utvecklare.

Är React kul att arbeta med?

Förutom dess ** välbyggda system av paket från tredje parter** (som ReduxandReact Routing), dess stort samhälle är ett stort plus eftersom det har nästan 50 tusen npm-paket som hjälper dig att uppnå ditt projekts mål. Detta är möjligt på grund av friheten som ges till utvecklare att skapa och anpassa sina behov enligt deras mål.

Ur ett karriärperspektiv och på grund av teknikbranschens ständigt föränderliga natur är det viktigt att veta om dina föredragna ramverk har en Karriär- och marknadspotential att växa. Medan Vue.js har en enklare inlärningskurva, vilket gör det snabbare för dig att behärska det, det finns många fler React-utvecklare på marknaden. Om du letar efter Vue.js vs React-jobb kommer du säkert att ha mer konkurrens i React än i Vue.js.


När det gäller lön, enligt 2019 års statistik jämföra den årliga lönen för arbete, React-utvecklare kan tjäna lite mer i ett långsiktigt perspektiv än Vue.js utvecklare.

blå pil till vänster
Imaginary Cloud-logotyp

När ska man använda Vue vs React

Baserat på det utvecklade projektet lärde jag mig att:

  • Vue.js har en enklare inlärningskurva, så det kan passa bättre om du vill ha något som kan läras ”snabbt” för att avsluta ditt projekt snabbare;
  • Vue.js passar bättre för mindre projekt än React;
  • React har tusentals paket som kan underlätta ditt projekt enormt;
  • React övervinner Vue.js för projekt som till sin natur är större och med högre komplexitet.

Companies using React

Med tanke på mina resultat drar jag slutsatsen att Vue.js Passar bättre än Reagera För mindre komplexa projekt som detta. Detta beror främst på att:

  • Snabbstart i utveckling: med bakgrundskunskap i HTML kunde jag börja utveckla direkt efter att ha slutfört handledningen och läst all nödvändig dokumentation;
  • Tydligheten i HTML över JSX: Jag anser att HTML är mycket tydligare och enklare när det gäller kommunikation, vilket verkligen gör skillnad när du arbetar som ett team;
  • Bättre handledning: ger en handledning som inkluderar användning av officiella paket, till exempel hur man hanterar routing och butikshantering.

Companies using Vue

Slutliga tankar

Att välja ett ramverk att arbeta med kan vara en ganska utmaning eftersom varje projekt har sina egna behov och funktioner. Detta får mig att tro att istället för att dyka först i den mängd information som finns tillgänglig på webben för att snabbt svara på frågan: Vilket ramverk är bättre?, man bör fokusera istället på att räkna ut vilket ramverk som anpassar och passar projektets behov bättre.

Även variabler som din projektstorlek, komplexitet och mål, ha en betydande vikt i ditt slutliga beslut. Båda ramarna har sina egna specifikationer och din bakgrund som utvecklare spelar en viktig roll i detta, eftersom det kan påverka hur du hanterar dessa särdrag för att gynna ditt projekt.

I den här artikeln pratade jag om Vue.js vs React baserat på ett projekt som jag utvecklade från grunden med båda ramarna.

Om du söker hjälp i bygga en mobilapplikation i Vue.js eller React har vi mycket skickliga utvecklare redo att få det att hända! Hör av dig!

Grow your revenue and user engagement by running a UX Audit! - Book a call

Tyckte den här artikeln intressant? Du kanske gillar dessa också!

blå pil till vänster
Imaginary Cloud-logotyp
blå pil till vänster
Imaginary Cloud-logotyp
André Atalaia
André Atalaia

Jag är en webbutvecklare som brinner för ramverk som gör livet enklare. Ofta glömmer man att man förmodligen inte behöver semikolon längre.

Läs fler inlägg av denna författare

Människor som läste det här inlägget tyckte också att dessa var intressanta:

pil vänster
pilen till höger
Dropdown caret icon