Size: a a a

2020 December 22

PM

Pavel 🦇 Malyshev in Svelte [svelt]
const todos = asyncable(fetchTodos, saveTodos, [ query ]);
const todosSync = derived(todos, (todos, set) => todos.then(set), []);

{#await $todos}
  <Spinner />
{:then _}
{:catch error}
  <Error {error} />
{/await}

<div>
  {#each $todosSync as todo, i (todo.id)}
    <div>
         <input value={todo.title} on:change={e => saveTodo(i, e.target.value)}>
     </div>
  {/each}
</div>

<button on:click={() => $query.page++}>
   Next page
</button>

function saveTodo(index, title) {
   todos.update($todos => {
      $todos[index].title = title;
      return $todos;
  });
}
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
собственно это полный пример
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
надо только описать 2 сайд-эффекта
источник

КС

Кирилл Спасибович... in Svelte [svelt]
а что если в then запихать то что у тебя в div с тудухами ?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
ну и проверочки какие-то. я еще функции работы со стором храню в файле стора и экспортирую оттуда. то есть saveTodo должен быть там же где сам стор
источник

КС

Кирилл Спасибович... in Svelte [svelt]
а раньше ты вроде другое говорил :)
что в компонентах данные тоже запрашиваешь
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Кирилл Спасибович
а что если в then запихать то что у тебя в div с тудухами ?
тогда наверное свелт пререндерит все при смене промиса. я кстати не тестировал, может магия и это как-то оптимизируется, но я не знаю как
источник

КС

Кирилл Спасибович... in Svelte [svelt]
т.к. там типа дешевле реактивность
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Кирилл Спасибович
а раньше ты вроде другое говорил :)
что в компонентах данные тоже запрашиваешь
конечно
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Кирилл Спасибович
т.к. там типа дешевле реактивность
да верно, я не храню ВСЕ данные в сторах
источник

КС

Кирилл Спасибович... in Svelte [svelt]
я просто тоже думаю, что хранить все эти сторы в отдельном файле прикольнее
источник

КС

Кирилл Спасибович... in Svelte [svelt]
т.е. ты хранишь то что с ними работает там?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
сторы - бля глобального стейта
источник

КС

Кирилл Спасибович... in Svelte [svelt]
и "инстанциируешь" в компоненте ?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
есть локальный стейт - он в компонентах, есть глобальный - он в сторах. все методы/экшены работы со стейтом ближе к самому стейту
источник

КС

Кирилл Спасибович... in Svelte [svelt]
так просто прикольнее читать, в компоненте то что касается отображения всякой фигни на экране
источник

КС

Кирилл Спасибович... in Svelte [svelt]
а.. я понял :)
источник

КС

Кирилл Спасибович... in Svelte [svelt]
ну локальный стейт это типа поля редактора, или какие-то галочки от которых меняется отображаемые поля или кнопки
источник

КС

Кирилл Спасибович... in Svelte [svelt]
а глобальный это то что ты с API тянешь
источник

КС

Кирилл Спасибович... in Svelte [svelt]
правильно ?
источник