Следует ли использовать оператор распространения при обновлении объекта с помощью метода обновления 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 не возражает. На самом деле все зависит от того, какой стиль вы предпочитаете.

Другие вопросы по тегам