Om React
React.js är ett JavaScript-ramverk med öppen källkod som fokuserar på att skapa användargränssnitt. Det är ett av de bästa ramverken för frontend-utveckling eftersom det gör det möjligt för utvecklare att skapa robusta och komplexa produkter samtidigt som det är enkelt att integrera i befintliga appar.
Utvecklare använder React.js för att skapa storskaliga webbapplikationer som kan ändra data utan att ladda om sidan. Reacts huvudmål är att vara snabb, skalbar och användarvänlig.
Dessutom är React kompatibelt med olika JavaScript-bibliotek och ramverk och används av ett antal kända företag som Meta (tidigare Facebook), Netflix med flera. Blanda dock inte ihop det med React Native, som främst används för att utveckla plattformsoberoende mobilapplikationer.
Hela utvecklingen och underhållet av användargränssnittskomponenterna sköts av en React.js-utvecklare. De skapar applikationer och frontend designer, applikationskomponenter och användargränssnitt. Och som alla professionella inom mjukvaruutveckling är de bästa inte så lätta att hitta!
Statistik över React.js-utvecklare
Om du tror att React.js skulle vara den rätta programvarulösningen för ditt projekt skadar det inte att ta del av allmän statistik om utvecklare som är väl förtrogna med detta ramverk och andra kompatibla programmeringsspråk.
Enligt Stack Overflows rapport för 2021 är React.js nu det mest populära webbramverket och överträffar det näst bästa jQuery med nästan 6 procent. Och dessa uppgifter baseras på svar från 49 941 professionella utvecklare, varav 19 864 väljer React.js som sitt mest föredragna programmeringsramverk.
Enbart antalet svarande visar hur många utvecklare som behärskar detta ramverk, även om det är svårt att avgöra hur många React.js-utvecklare det finns globalt. Men det betyder inte att det finns ett överskott av bra React-utvecklare: Faktum är att mer än 8 700 globalt använder det för sina webbutvecklingsprojekt.
Och när det gäller kostnaden för att anlita en React.js-utvecklare kan timpriset stiga upp till 60 dollar (ca. 580 kr). För att inte tala om kostnaden för platsannonsering, rekrytering, inlärning, granskning och kostnaden för störningar i ditt utvecklarteam tills du hittar den bästa personen för jobbet.
Intervjua en React.js-utvecklare
Tips för din första intervju
Vägen till att anställa en fantastisk utvecklare på heltid börjar med en första intervju. Samtalet är mindre inriktat på tekniska färdigheter och mer på att "rensa ut" de kandidater som du anser vara oprofessionella eller som helt enkelt inte passar in i kulturen.
Vår rekryteringschef Nadya Pokhyla använder ett praktiskt tillvägagångssätt för att poängsätta kandidater i förhandsgranskningar med hjälp av ett användbart poängkort.
Jag lägger stor vikt vid deras professionalism, självpresentation och kommunikationsförmåga, liksom motivation, entusiasm, engelska språkkunskaper och många andra viktiga punkter som vi utvärderar under förhandsgranskningen. Jag gillar att ställa mig själv frågan: 'Skulle jag kunna arbeta med den här personen som kollega?'
Nadya Pokhyla
Talangrekryteringsspecialisten Evgenia Kashchuk tillägger:
Efter att ha genomfört många intervjuer kan jag säga att de viktigaste icke-tekniska färdigheterna är presentation (allt börjar med ett samtal med en rekryterare), öppenhet, social förmåga, ärlighet, nyfikenhet och flexibilitet.
Evgenia Kaschuk
Tekniska färdigheter som du bör leta efter hos React.js-utvecklare
Eftersom det kan vara en ganska svår uppgift (och dyrt!) att hitta de bästa React.js-utvecklarna har vi bett våra rekryterare och tekniska intervjuare att hjälpa oss att identifiera de viktigaste färdigheterna som de bör ha, bortsett från stora kunskaper om React.js i sig och deras år av erfarenhet.
Enligt Terri Prifti, en skicklig React.js-utvecklare och teknisk intervjuare, är detta de tre viktigaste tekniska färdigheterna som en React.js-utvecklare bör ha:
En React.js-utvecklare bör kunna skriva HTML + CSS och känna till principerna för responsiv webb. De bör också vara bekanta med JSX-syntaxen och förstå grunderna i JavaScript-språket (t.ex. datatyper, DOM-manipulering, "this"-nyckelordet, callback-funktioner).
Terri Prifti
Han tillägger också att en bra React.js-utvecklare bör känna till följande:
- Komponenter av High Order Components (HOC);
- Komponenter för ytlig rendering (Shallow rendering);
- Att kunna undvika att samma data skickas i varje nivå;
- Skriva tester.
Catherine Fialkova, specialist på talangrekrytering, understryker att "en bra React.js-utvecklare bör arbeta med HTML-taggar, skriva CSS-selektorer, förstå boxmodellen och hur man återställer border-boxen samt ha en förståelse för flexbox".
Alla React-utvecklare bör också ha en förståelse för hur Git hanteras och ha en profil på GitHub eller GitLab. JSX är en abstraktion av React.js. Det är viktigt för en utvecklare att ha kunskap om denna utvidgning av HTML.
Catherine Fialkova
De bästa icke-tekniska färdigheterna hos React.js-utvecklare
Några andra egenskaper som du bör tänka på när du gör den första intervjun med en kandidat är enligt Fialkova dess följande:
- Tydlig och professionell kommunikation;
- Engelska på medelnivå eller högre nivå;
- Förmåga att komma bra överens med alla grupper;
- Ambitioner i fråga om ledarskap;
- Förmåga att stödja och handleda yngre kollegor;
- Punktlighet när det gäller att delta i möten eller slutföra uppgifter i tid.
Intervjufrågor att ställa
- Vilka är funktionerna i React.js?
Förväntat svar: De viktiga funktionerna i React.js är:
- JSX
- Komponenter
- Enkelriktad databindning
- Virtuell DOM
- Enkelhet
- Prestanda
- Varför använda React.js istället för andra ramverk, till exempel Angular.js?
Förväntat svar: React.js överträffar Angular.js på grund av dess virtuella DOM-implementering och renderingsoptimeringar. Dessutom är det enkelt att växla mellan React-versioner eftersom du, till skillnad från Angular.js, inte behöver installera uppdateringar en i taget. Slutligen finns olika färdiga lösningar tillgängliga för utvecklare som använder React.
- Vad är en händelse i React.js?
Förväntat svar: En händelse är en potentiell åtgärd som kan vidtas av en användare eller systemgenererad händelse. Händelser inkluderar musklick, laddning av webbsidor, tangenttryckningar, fönsteråterställning och andra interaktioner.
- Vad är syntetiska händelser i React.js?
Förväntat svar: Ett omslag mellan webbläsare för den inbyggda händelsen i webbläsaren är en syntetisk händelse. Den har samma gränssnitt som de inbyggda webbläsarhändelserna, till exempel preventDefault() och stopPropagation(). Händelserna är dock universellt funktionella i alla webbläsare.
- Vad är skillnaden mellan Hooks och Redux?
Förväntat svar: React Hooks-funktioner hanterar det lokala komponenttillståndet medan Redux hanterar det globala tillståndet och åtgärder som kan skickas.
- Hur hanterar du mappstrukturen?
Förväntat svar: React.js har ingen regel för hur du placerar filer i mappar, men några vanligare metoder är gruppering efter funktioner eller vägar eller gruppering efter filtyper.
- Vad är React komponentlivscykeln?
Förväntat svar: I React.js har varje komponent en livscykel som du kan spåra och styra under dess tre primära faser. Montering, uppdatering och avmontering är de tre stegen.
- Hur kan du undvika återgivning av komponenter?
Förväntat svar: För att undvika återgivning per komponent bör du använda livscykeln shouldComponentUpdate().
- Ge mig tre fördelar med att använda hooks i React.
Förväntat svar: Att använda React Hooks ger tre fördelar: återanvändbarhet, läsbarhet och testbarhet.
- Hur ofta uppdateras React UseState, och varför?
Förväntat svar: React.js försenar uppdateringen av uppdateringar eftersom utvecklare använder useState för att förbättra hastigheten genom att skapa köer. Kandidater bör vara medvetna om att useState-uppdateringar sker asynkront i stället för att omedelbart genomföra ändringar i tillståndsmålet.
- Vad är den största fördelen med att använda Flux?
Förväntat svar: Du kan styra hur data flödar genom ditt program genom att använda Flux. Du kan mer effektivt analysera dataändringar och felsöka problem genom att införa ett enkelriktat dataflöde med fördefinierade ansvarsområden för varje komponent (åtgärd, lagring och vy).
- Hur skapar du refs?
Förväntat svar: React.js används för att skapa Refs. Man använder attributet ref för att koppla till React-element efter anropet createRef(). När en komponent skapas anges refs pånytt till en förekomstegenskap så att de kan användas som referenser i hela komponenten.
- Hur skulle du optimera prestandan i en React-app?
Förväntat svar:
- Genom att hålla komponenttillståndet lokalt, vid behov
- Genom att komma ihåg att React.js komponenter bör undvika onödiga om-renderingar
- Genom koddelning med dynamisk import
- Genom Reactfönster eller listvirtualisering
- Med Reacts lazy image loading
- Vad skulle du undvika att binda i React.js?
Förväntat svar: Jag kan använda pilfunktioner i klassegenskaper för att undvika bindning i React.js. Klassegenskaper är en ny funktion och för att kunna använda dem måste jag aktivera transform-class-properties.
- Berätta om tidigare projekt du har arbetat med och som byggdes ovanpå React.js.
Exempel på svar: Jag har arbetat med en meddelandeapp/chattapp i realtid /personlig blogg /e-handelsmobilapplikation.
Vad skiljer en bra React.js-utvecklare från en bra utvecklare?
När det gäller de finjusterade tekniska detaljerna som en bra React.js-utvecklare kan ha, tittar Prifti djupt in i kodens detaljer.
Jag ser alla skillnader i importordningen, destrukturering av objekt, användning av memoiserade komponenter, undviker att definiera funktioner inuti render, användning av objektlitteraler.
För Catherine är det viktigaste kriteriet, förutom att behärska den förväntade tekniska stapeln, att utvecklaren kan arbeta utan att övervakas och påminnas om sina uppgifter:
De ska kunna presentera sig själva och sitt arbete utan ständig övervakning. Extra poäng om de tar på sig mer än bara React.js-relaterade uppgifter, har förmågan att fatta egna beslut och en vilja att lära sig nya saker.