使用 svelte/store 更新方法更新对象时是否应该使用扩展运算符?
Should a spread operator be used when updating an object with svelte/store update method?
我正在创建一个使用对象来存储我的数据的商店。
我可以使用传播运算符更新商店,但我也可以不使用传播运算符更新它。
Svelte 是否像 React,我应该在更新对象状态之前使用扩展运算符创建一个新对象,这样我就不会改变原始对象?
withSpreadOperator()
or 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>
你可以做任何一个,Svelte 不介意。这真的取决于你喜欢哪种风格。
我正在创建一个使用对象来存储我的数据的商店。
我可以使用传播运算符更新商店,但我也可以不使用传播运算符更新它。
Svelte 是否像 React,我应该在更新对象状态之前使用扩展运算符创建一个新对象,这样我就不会改变原始对象?
withSpreadOperator()
or 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>
你可以做任何一个,Svelte 不介意。这真的取决于你喜欢哪种风格。