Следует ли использовать оператор распространения при обновлении объекта с помощью метода обновления svelte/store?
Я создаю магазин, который использует объект для хранения моих данных.
Я могу обновить магазин с помощью оператора распространения, но я также могу обновить его без оператора распространения.
Svelte похож на React, где я должен использовать оператор распространения для создания нового объекта перед обновлением состояния объекта, чтобы я не изменял исходный объект?
withSpreadOperator()
или withoutSpreadOperator()
... вот в чем вопрос.
//stores.js
import { writable } from "svelte/store";
export const counts = writable({ n: 0 });
//App.js
<script>
import { count } from "./stores.js";
function withSpreadOperator() {
count.update(o => {
let x = { ...o };
x.n++;
return x;
});
}
function withoutSpreadOperator() {
count.update(o => {
o.n++;
return o;
});
}
</script>
<h1>The count is {$count.n}</h1>
<button on:click="{withSpreadOperator}">+</button>
<button on:click="{withoutSpreadOperator}">+</button>
1 ответ
Решение
Вы можете сделать то же самое, Svelte не возражает. На самом деле все зависит от того, какой стиль вы предпочитаете.