Там есть плагины как для бэка, так и для фронта. React + Apollo. На выходе будут тайпскрипт типы для Graphql + готовые компоненты\хуки для всех query и mutation.
Они не просто инициальзируются в разном порядке, первый вариант — это объявление метода. Этот метод попадает в прототип. Второй вариант — объявление поля, в которое записывается фунция. Это поле инициализируется в каждом экземпляре класса. Из чего следует еще один забавный момент: если попытаться унаследоваться от такого класса, то через super, такая функция доступна не будет.
Суть не в том, будет ли ругаться React или нет, а в том, что-бы избавиться от замыкания. В этот метод всегда будет приходить актуальное значение стейта.
const [state, setState] = useState(0);
useEffect(() => {
setState(state + 1); // setState(0 + 1)
asyncAction().then(() => setState(state + 1); // setState(0 + 1) state все еще 0
});
useEffect(() => {
setState(st => st + 1); // setState(0 + 1)
asyncAction().then(() => setState(st => st + 1); // setState(1 + 1) state уже обновился
});
Вообще говоря, в случае с классами тоже можно было попасть на такие проблемы, если распаковать props/state через дестуктуризацию, а потом замкнуть их в коллбэке.
Если я правилно помню, там была система, которая повышала шанс выпадения хороших предметов со временем, и сбрасывала добавочную вероятность после получения. Помню еще, что на старте игры, если не учить руны по первому времени, то они начинали чаще падать.
Это число не несет в себе никаких функций безопасности, оно просто добавлено для того, что-бы там было хоть какое-то значение. Вероятнее всего, в случае генерации случайного числа, возникнут проблемы согласования между несколькими копиями реакта.
Технически, для обеспечения иммутабельности, можно использовать Object#freeze. Хотя конечно это все равно не будет работать с вложенными объктами по-человечески.
На самом деле, IE поддерживает CSS Grid, но только ограниченно (старая версия спецификации) и под префиксом. Если не использовать возможности автоматического позиционирования, то большую часть поведения можно эмулировать, включая grid-template-areas.
Там есть плагины как для бэка, так и для фронта. React + Apollo. На выходе будут тайпскрипт типы для Graphql + готовые компоненты\хуки для всех query и mutation.
Используем на проекте GraphQL Code Generator, полёт нормальный
Задепрекейчены только componentWill{Mount,ReceiveProps,Update}, классы никуда не уходят.
Они не просто инициальзируются в разном порядке, первый вариант — это объявление метода. Этот метод попадает в прототип. Второй вариант — объявление поля, в которое записывается фунция. Это поле инициализируется в каждом экземпляре класса. Из чего следует еще один забавный момент: если попытаться унаследоваться от такого класса, то через
super
, такая функция доступна не будет.В порядке бреда можно полностью вывести тип валидатора из произвольного типа
честно подсмотрено здесь.
Я не совсем понял, а зачем использовать
useEffect
для загрузки данных в этом случае? Почему бы просто не сделать так:Суть не в том, будет ли ругаться React или нет, а в том, что-бы избавиться от замыкания. В этот метод всегда будет приходить актуальное значение стейта.
А вы пробовали передавать в
setState
функцию вместо значения? Это позволяет избавиться от замыкания данных.Вообще говоря, в случае с классами тоже можно было попасть на такие проблемы, если распаковать props/state через дестуктуризацию, а потом замкнуть их в коллбэке.
Технически, для обеспечения иммутабельности, можно использовать
Object#freeze
. Хотя конечно это все равно не будет работать с вложенными объктами по-человечески.