Při práci na rozsáhlých projektech Reactu je klíčové mít dobře organizovanou kódovou základnu pro lepší udržovatelnost a škálovatelnost.
V tomto článku se ponoříme do osvědčených postupů pro uspořádání vašeho zdrojového kódu v Reactu se zaměřením na využití React Hooks and Context.
Použití React Hooks pro řízení stavu
React Hooks je kolekce funkcí, které vám umožňují používat stav a další funkce Reactu bez použití tříd. To pomáhá psát stručnější a čitelnější kód. Například můžeme použít useState Hook ke správě stavu v komponentě.
Zde je příklad:
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;
Kombinace ingrediencí
Jednou z výhod Reactu je možnost opětovného použití komponent. Pro zvýšení organizace můžeme použít menší komponenty k sestavení větších komponent.
To pomáhá rozdělit práci a usnadňuje údržbu kódu. Můžeme například vytvořit <Button>
komponentu pro použití na více místech v naší aplikaci:
import React from 'react';
function Button({ onClick, children }) {
return <button onClick={onClick}>{children}</button>;
}
export default Button;
Použití kontextu ke správě globálního stavu
Kontext je mechanismus v Reactu, který nám umožňuje sdílet data mezi podřízenými komponentami, aniž bychom museli procházet nadřazenými komponentami. Tím se zabrání předávání datových atributů přes více úrovní komponent a pomůže to snížit složitost kódu.
Zde je příklad použití Kontextu ke sdílení aktuálního jazyka v aplikaci:
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;
Výše jsou některé osvědčené postupy pro uspořádání zdrojového kódu React pomocí React Hooks and Context.