В чём разница этих способов изменения состояния на противоположное?

Почему во всех статьях(которые я видел) используют первый способ?
const [data, setData] = useState(false);
Способ 1
setData(prev => !prev); // true
setData(prev => !prev); // false
setData(prev => !prev); // true
Способ 2
setData(!data) // true
setData(!data) // false
setData(!data) // true

или к примеру если нужно добавить в массив к уже имеющимся записям
const [data, setData] = useState([1, 2, 3]);
const newData = [4, 5, 6];
setData(prev => [...prev, ...newData]);
// data = [1, 2, 3, 4, 5, 6]
и
setData([...data, ...newData]);
// data = [1, 2, 3, 4, 5, 6]


Ведь 'способ 2' короче. Может есть ещё смысл этого ?

Постскриптум, пожалуйста без оскорблений)
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ответы на вопрос 3
@n1ksON
Интерн
Правильнее будет использовать первый способ.
Использование prev (предыдущего state), гарантирует корректную работу хука и отсутствие мутации.
Для начала можете посмотреть пример здесь
Подробнее почитайте документацию
Ответ написан
@karminski
Senior PHP /React.js developer
Использую только второй способ. Никаких проблем. Это просто краткая запись.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы