CV
Formations
Projets
Blog
TechMastry
Contact
Les closures sont super utiles ! Voici des cas concrets :
function createValidator(rules) { return function(data) { return rules.every(rule => rule(data)); }; } const emailValidator = createValidator([ data => data.includes('@'), data => data.length > 5 ]);
function createBankAccount(initialBalance) { let balance = initialBalance; return { deposit: (amount) => balance += amount, withdraw: (amount) => balance -= amount, getBalance: () => balance }; }
function debounce(func, delay) { let timeoutId; return function(...args) { clearTimeout(timeoutId); timeoutId = setTimeout(() => func.apply(this, args), delay); }; }
Les closures permettent de crĂ©er des "environnements persistants" ! đź§
Excellente question ! Voici plusieurs techniques pour optimiser tes composants React :
const ItemCard = React.memo(({ item, onClick }) => { return <div onClick={onClick}>{item.name}</div>; });
function MyComponent({ items, onSelect }) { const handleSelect = useCallback((item) => { onSelect(item); }, [onSelect]); return ( <div> {items.map(item => ( <ItemCard key={item.id} item={item} onClick={() => handleSelect(item)} /> ))} </div> ); }
Si tu as des transformations de données coûteuses, utilise useMemo !
Tu peux aussi regarder les React DevTools Profiler pour identifier les composants problématiques. 🔍