Вкратце: один способ объединит старые значения ключей и новое значение ключа, а другой просто заменит старый объект новым объектом, который будет иметь только один ключ.
В вашем случае нет разницы между этими двумя способами, потому что список содержит только один ключ:
list: {
...state.list,
[id]: array1
}
list: {
[id]: array1
}
Предположим, список выглядит примерно так:
list = {
name: 'abc',
address: 'abc',
}
Теперь вы хотите добавить массив здесь, при подходе ниже он добавит новый ключ к существующему объекту, а все остальные ключи останутся без изменений:
let id = 'ab12';
let array1 = [{a: 'hello', b: 'hi'}, {a: 'how', b: 'are'}];
list = {
...list,
[id]: array1
}
// list = {name: 'abc', address: 'abc', ab12: [...] }
Но если вы напишите:
list = {
[id]: array1
}
Вывод будет: * только 1016 *, имя и адрес будут удалены.