react useCallback code example
Example 1: useRef
/*
A common use case is to access a child imperatively:
*/
function TextInputWithFocusButton() {
const inputEl = useRef(null);
const onButtonClick = () => {
// `current` points to the mounted text input element
inputEl.current.focus();
};
return (
<>
<input ref={inputEl} type="text" />
<button onClick={onButtonClick}>Focus the input</button>
</>
);
}
Example 2: use callback vs use memo
// They both take a function and an array of dependencies:
useCallback(() => {···}, [dependency1, dependency2]);
useMemo(() => {···}, [dependency1, dependency2]);
// So what is the difference?
// useCallback returns its function uncalled so you can call it later
// therefore, it gives you back the function's reference
// useMemo calls its function and returns the result.
// therefore, it gives you back the function's return value