Size: a a a

2020 March 28

DK

Dmitry Kutran in Svelte [svelt]
Мурат Мавлидов
на самом деле да, так исторически сложилось что корзина в себе имеет помимо логики отображения, так же промокоды, бонусы, в случае неавторизованности там регистрация, переходы внутри регистрационного попапа к разным состояниям. Логики там достаточно. Надо все разложить по полкам.
Через композицию это делается проще
источник

DK

Dmitry Kutran in Svelte [svelt]
Пишется функция, которая оборачивает твоё действие над стором без всяких редюсеров
источник

ММ

Мурат Мавлидов in Svelte [svelt]
Dmitry Kutran
Через композицию это делается проще
посмотрим. Щас чекаут пилим на нативном, хотя там логики гораздо больше, state машину для управления взаимодействия, ну и компоненты. Может остановимся на такой концепции
источник

ММ

Мурат Мавлидов in Svelte [svelt]
Я пилил мобилу, а коллега десктоп. В целом реакт в поддержке оказался проще.
источник

DK

Dmitry Kutran in Svelte [svelt]
@Murat_Mavlidov реклама и ссылки на ресурсы, относящиеся к разработке на других фреймах запрещены
источник

ММ

Мурат Мавлидов in Svelte [svelt]
🙄
источник

ММ

Мурат Мавлидов in Svelte [svelt]
сорян
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Мурат Мавлидов
В том наверно и дело, что пока непонятно как архитектура store в svelte реализовывается. Кидать в один файл дефолтные состояние, туда же хелперсы для апдейта этих состояний тоже не хочется. Мб у кого есть на гитхабе реализованные решения? Редакс брать не хотим, да и смысл тянуть то, что есть уже из коробки svelte, просто надо абстракцию написать нормальную
оно из коробки опционально - не используете, не подключается. а вот велосипедить поверх сторов свелта свой редакс мне кажется не разумно. лучше тогда реально взять редакс и получить все его плюшки. это на случай если уж очень нравится.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Мурат Мавлидов
В том наверно и дело, что пока непонятно как архитектура store в svelte реализовывается. Кидать в один файл дефолтные состояние, туда же хелперсы для апдейта этих состояний тоже не хочется. Мб у кого есть на гитхабе реализованные решения? Редакс брать не хотим, да и смысл тянуть то, что есть уже из коробки svelte, просто надо абстракцию написать нормальную
я уже много раз писал, что очень удобно использовать js модули (разделение по файлам) и структуру каталогов, вместо одного вложенного объекта
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
условно говоря если у нас есть один большой стор:

{
 user: {
    username,
    settings: {}
    cart: {},
    favorites: [],
    ....
 },
 products: [ .... ],
 categories: [ .... ],
 ....
}
источник

PM

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

/src/store/
  /user/
     index.js
     user.js
     settings.js
     cart.js
     favorites.js
 products.js
 categories.js
источник

PM

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


export * from ''./user.js';
export * from 'cart.js';
...
источник

ММ

Мурат Мавлидов in Svelte [svelt]
Pavel 🦇 Malyshev
условно говоря если у нас есть один большой стор:

{
 user: {
    username,
    settings: {}
    cart: {},
    favorites: [],
    ....
 },
 products: [ .... ],
 categories: [ .... ],
 ....
}
прикольно кстати, спасибо
источник

PM

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


export * from ''./user.js';
export * from 'cart.js';
...
просто чтобы можно было делать так:

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

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Мурат Мавлидов
прикольно кстати, спасибо
простота и изолированность работы с каждым таким модулем значительно прибавляет ясности при манипуляциях с глобальным стейтом
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
а разделение на атомик сторы - то есть один стор === один кусок стейта позволяет трегирить и реагировать на изменения максимально точечно
источник

A

Arushwl in Svelte [svelt]
(!) Circular dependency
src/components/filters/index.js -> src/components/filters/Filters.svelte -> src/components/filters/index.js

У меня сам компонент и вложенные в него в index.js експортится - это критично?
источник

A

Arushwl in Svelte [svelt]
index.js

export { default as Categories } from './Categories.svelte'
export { default as Brands } from './Brands.svelte'
export { default as Shops } from './Shops.svelte'
export { default as Prices } from './Prices.svelte'
export { default as Tabs } from './Tabs.svelte'
export { default as Filters } from './Filters.svelte'


Filters.svelte

import { Categories, Brands, Shops, Prices } from "./index";


Другой компонент где фильтры выводятся

import { Tabs, Filters } from "../components/filters/";
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
хм, а зачем так сделано? 🤔
источник

A

Arushwl in Svelte [svelt]
Ну чтоб в одной папке все что к фильтрам было
источник