Ваш вопрос о мелкой VS глубокой копии объекта.
При использовании оператора распространения вы создаете мелкую копию объекта (точно так же, как при использовании old-school Object.assign ).
Когда вы используете разбор JSON - вы получаете глубокую копию (или "глубокий клон") объекта.
Мелкая копия, как следует из названия, означает, что внешний объект является новым, а вложенные объекты остаются прежними. Как только вы познакомитесь с редуксом в глубине, в большинстве случаев будет достаточно операторов копья, но об этом важно помнить.
Возможно, вы захотите прочитать мой вопрос по этому вопросу , а также эту статью .