объекты в JS сравниваются по ссылке. и чтобы выяснить, были ли в объекте изменения, гораздо "дешевле" сначала сравнить новый и старый стейт через ===
, чтобы не запускать каждый раз deepEqual
, если на самом деле изменений-то и не было.
если ты возвращаешь новый объект, то у тебя сравнение двух объектов по ссылке возвращает false
, и это уже сигнал, что пора проверять, где же были изменения
Стас написал:
"если ты возвращаешь новый объект, то у тебя сравнение двух объектов по ссылке возвращает false, и это уже сигнал, что пора проверять, где же были изменения"
Окей, но как оно вообще начинает сравнивать, если возвращается другой объект с такими же полями, как и у основного стейта, вот это мне непонятно