Встречается на собеседованиях • сегодня

Как реализовать свой useState

Вот простая реализация useState на основе замыканий:

js
let state;
let setters = [];

function useState(initialValue) {
  if (state === undefined) {
    state = initialValue;
  }

  const setter = (newValue) => {
    state = newValue;
    render(); // перерисовка компонента
  };

setters.push(setter);
const currentSetter = setters[setters.length - 1];

return [state, currentSetter];
}

function render() {
// Здесь будет логика перерисовки компонента
}

text

Пример использования:
```js
const [count, setCount] = useState(0);
setCount(5); // обновит состояние и вызовет render()

Это упрощённая версия. Настоящий React:

  1. Хранит состояние для каждого компонента отдельно
  2. Поддерживает асинхронные обновления
  3. Оптимизирует перерисовки
  4. Работает с очередью обновлений

Для нескольких useState нужно хранить массив состояний и индекс текущего хука.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы