Kada radite na React projektima velikih razmjera, ključno je imati dobro organiziranu bazu koda za bolju mogućnost održavanja i skalabilnost.
U ovom ćemo članku zaroniti u najbolje prakse za organiziranje vašeg izvornog koda u Reactu, s fokusom na korištenje React kuka i konteksta.
Korištenje React kukica za upravljanje stanjem
React Hooks je zbirka funkcija koje vam omogućuju korištenje stanja i drugih React značajki bez korištenja klasa. To pomaže u pisanju sažetijeg i čitljivijeg koda. Na primjer, možemo koristiti useState kuku za upravljanje stanjem u komponenti.
Evo primjera:
import React, { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
const increment =() => {
setCount(count + 1);
};
return(
<div>
<p>Count: {count}</p>
<button onClick={increment}>Increment</button>
</div>
);
}
export default Counter;
Kombinacija sastojaka
Jedna od prednosti Reacta je mogućnost ponovne upotrebe komponenti. Da bismo povećali organizaciju, možemo koristiti manje komponente za izgradnju većih komponenti.
To pomaže da se posao razloži i kod se lako održava. Na primjer, možemo stvoriti <Button>
komponentu za korištenje na više mjesta u našoj aplikaciji:
import React from 'react';
function Button({ onClick, children }) {
return <button onClick={onClick}>{children}</button>;
}
export default Button;
Korištenje konteksta za upravljanje globalnim stanjem
Kontekst je mehanizam u Reactu koji nam omogućuje dijeljenje podataka između komponenti djeteta bez prolaska kroz komponente roditelja. Time se izbjegava prosljeđivanje atributa podataka preko višestrukih razina komponenti i pomaže smanjiti složenost koda.
Evo primjera korištenja konteksta za dijeljenje trenutnog jezika u aplikaciji:
import React, { createContext, useContext, useState } from 'react';
const LanguageContext = createContext();
function App() {
const [language, setLanguage] = useState('en');
const changeLanguage =(newLanguage) => {
setLanguage(newLanguage);
};
return(
<LanguageContext.Provider value={{ language, changeLanguage }}>
<div>
<Navbar />
<Content />
</div>
</LanguageContext.Provider>
);
}
function Navbar() {
const { language, changeLanguage } = useContext(LanguageContext);
return(
<div>
<button onClick={() => changeLanguage('en')}>English</button>
<button onClick={() => changeLanguage('fr')}>French</button>
<button onClick={() => changeLanguage('es')}>Spanish</button>
<p>Current language: {language}</p>
</div>
);
}
function Content() {
const { language } = useContext(LanguageContext);
return <p>This is the content in {language}.</p>;
}
export default App;
Iznad su neke najbolje prakse za organiziranje React izvornog koda pomoću React kuka i konteksta.