Size: a a a

2020 April 26

К

Константин in Svelte [svelt]
подскажите по структуре проекта, плз ) Как лучше сторы хранить?
источник

PM

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

PM

Pavel 🦇 Malyshev in Svelte [svelt]
actions
components
helpers
pages
views
stores
источник

DB

Denis Bazhenov in Svelte [svelt]
Игорь Корнелли
а все просто, нужно мутировать объект и все сработает
Ну так значения в объекте поменялись переменной присвоил  массив который в нём хранился этого для мутации разве не достаточно?
источник

К

Константин in Svelte [svelt]
а внутри stores?
источник

К

Константин in Svelte [svelt]
для каждого хранилища отдельный файл?
источник

PM

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

PM

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

К

Константин in Svelte [svelt]
надо, мне кажется, отдельную статейку про это запилить )
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
возьмем к примеру большой такой стор user
источник

AY

Andrey Yamanov in Svelte [svelt]
Pavel 🦇 Malyshev
actions
components
helpers
pages
views
stores
В чем разница между views и pages?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
а у него кроме самих данных юзера еще его товары, преференсы, карзина и тп
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
в подходе single store, аля редакс, у нас будет один большой объект:

{
  user: { email, name, phone, ... },
  cart: {},
  comments: [],
  posts: []
  ....
}
источник

DB

Denis Bazhenov in Svelte [svelt]
Константин
заюзай .map со спредом тогда
Правильно понимаю надо использовать что то типа этого?
todos = todos.map(todo => {
   if (todo === toggled) {
       // возвращаем новый объект
       return {
 id: todo.id,
 text: todo.text,
 done: !todo.done
       };
}
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
в
подходе с атомик сторами все это разные сторы, но сущностью по сути одна. в этом случае я делаю так:

/stores/
  /user/
     user.js
     cart.js
     comments.js
     posts.js
     index.js
источник

К

Константин in Svelte [svelt]
Denis Bazhenov
Правильно понимаю надо использовать что то типа этого?
todos = todos.map(todo => {
   if (todo === toggled) {
       // возвращаем новый объект
       return {
 id: todo.id,
 text: todo.text,
 done: !todo.done
       };
}
там выше тебе ссылку на опции кинули ) Скорее всего хватит просто 1 опцию поменять, чтобы свелт лез в объекты
источник

К

Константин in Svelte [svelt]
либо ссылки на объекты в массиве замени. Просто новые объекты создай из текущих в массиве
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
для удобвства внутри /stores/user/index.js просто реэкпорчу все содержимое и можно работать:

import { comments } from '@/stores/user';
источник

DB

Denis Bazhenov in Svelte [svelt]
Константин
там выше тебе ссылку на опции кинули ) Скорее всего хватит просто 1 опцию поменять, чтобы свелт лез в объекты
Спасибо - пойду ковыряться дальше.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Andrey Yamanov
В чем разница между views и pages?
components -  "глупые", переиспользуемые компоненты без бинес-логики

views - конкретные блоки с конкретной имплементацией бинес-логики, то сути "умные" компоненты

pages - страницы, если роутер требует именно связи роут => компонент, ну и в принципе если приложение логически разделено на страницы (не всегда так бывает)
источник