Обновить

Комментарии 3

Статья хорошая. Пока остаюсь на Vue.

React сначала выполняет все эффекты родителя, потом дочерние

Эффекты - наоборот, сначала дочерние. А вот рендер сначала выполняется родительский.

Бесконечный ререндер из-за useEffect видел в чуть более хитрой форме:

type Props = {arr?: string[]};

function Component({arr = []}: Props) {
  // ...

  useEffect(() => {
    // обновляем состояние
  }, [arr]);

  // ...
}

Если в такой компонент не передать проп arr, то будет бесконечный ререндер, потому что в arr попадает каждый раз новый пустой массив.

Действительно очень хитрая форма. Спасибо!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации