Skip to content

Instantly share code, notes, and snippets.

@pointofpresence
Last active March 31, 2024 18:25
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pointofpresence/ceae682d4e90e3728e01bb86aae96e53 to your computer and use it in GitHub Desktop.
Save pointofpresence/ceae682d4e90e3728e01bb86aae96e53 to your computer and use it in GitHub Desktop.
Создание пользовательских хуков

Создание пользовательских хуков

Хуки создаются для того, чтобы можно было разделять одинаковое поведение между разными компонентами. Они работают гораздо очевиднее, чем компоненты высшего порядка или рендер-пропсы. Также, React позволяет создавать кастомные хуки.

// создаем хук для получения данных из API
function useAPI(endpoint) {
  const [value, setValue] = React.useState([]);

  React.useEffect(() => {
    getData();
  }, []);

  async function getData() {
    const response = await fetch(endpoint);
    const data = await response.json();
    setValue(data);
  };

  return value;
};

// рабочий пример использования нового хука
function App() {
  const todos = useAPI("https://todos-dsequjaojf.now.sh/todos");

  return (
    <ul>
      {todos.map(todo => <li key={todo.id}>{todo.text}</li>}
    </ul>
  );
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment