Хабр Курсы для фронтендеров
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

Статья хорошая. Пока остаюсь на Vue.
React сначала выполняет все эффекты родителя, потом дочерние
Эффекты - наоборот, сначала дочерние. А вот рендер сначала выполняется родительский.
Бесконечный ререндер из-за useEffect видел в чуть более хитрой форме:
type Props = {arr?: string[]};
function Component({arr = []}: Props) {
// ...
useEffect(() => {
// обновляем состояние
}, [arr]);
// ...
}Если в такой компонент не передать проп arr, то будет бесконечный ререндер, потому что в arr попадает каждый раз новый пустой массив.
Заметки фром реакт документейшен | React: грабли, о которые я спотыкалась. Часть 1