Size: a a a

2020 March 03

AZ

Alexander Zinchenko in Svelte [svelt]
const event = e.touches ? e.touches[0] : e;
   x = startX = event.clientX;
   y = startY = event.clientY;
источник

A

Arushwl in Svelte [svelt]
Спасибо! Ща погляжу
источник
2020 March 04

IU

Ilya Usoltsev in Svelte [svelt]
Привет! Вопрос по Store. В доках слишком простой пример организации. Нашел такой: https://fireship.io/snippets/custom-svelte-stores/
Неплохо выглядит пример с Redux-Devtools.
Есть где-то еще более реальные примеры организации Store? С многоуровневой вложенностью объектов и сотней actions/updates? Что-то масштабируемое. Спасибо)
источник

DK

Dmitry Kutran in Svelte [svelt]
Ilya Usoltsev
Привет! Вопрос по Store. В доках слишком простой пример организации. Нашел такой: https://fireship.io/snippets/custom-svelte-stores/
Неплохо выглядит пример с Redux-Devtools.
Есть где-то еще более реальные примеры организации Store? С многоуровневой вложенностью объектов и сотней actions/updates? Что-то масштабируемое. Спасибо)
А чем кастомные сторы для масштабируемости не подходят?
источник

DK

Dmitry Kutran in Svelte [svelt]
Тот-же редакс, когда увеличивается количество экшенов становится нереально поддерживать из-за слабой связанности (тот случай, когда это плохо)
источник

IU

Ilya Usoltsev in Svelte [svelt]
Dmitry Kutran
А чем кастомные сторы для масштабируемости не подходят?
Хотелось бы один стор) Или у Sveltе другая идеология?
источник

DK

Dmitry Kutran in Svelte [svelt]
Ilya Usoltsev
Хотелось бы один стор) Или у Sveltе другая идеология?
Принято разные сторы делать. А зачем один?
источник

DK

Dmitry Kutran in Svelte [svelt]
Если надо - их всегда можно агрегировать через derived
источник

IU

Ilya Usoltsev in Svelte [svelt]
Dmitry Kutran
Если надо - их всегда можно агрегировать через derived
Понял, спасибо)
источник

A

Arushwl in Svelte [svelt]
Дмитрий Беляев
а вообще, я себе вот такую обертку накидал, чтоб со сторами работать как с редаксом:
import {Readable, readable, derived} from 'svelte/store';
import {noop} from 'svelte/internal';
import {isNotEmptyArray} from './arrays';

type CombinedStoreValues<SR extends Record<string, Readable<any>>> = {
   [K in keyof SR]: SR[K] extends Readable<infer T> ? T : never;
};

export function combineStores<SR extends Record<string, Readable<any>>>(storesRecord: SR): Readable<CombinedStoreValues<SR>> & SR {
   const names: Array<keyof SR> = Object.keys(storesRecord);
   const stores = names.map<Readable<SR[string]>>(name => storesRecord[name]);
   if(!isNotEmptyArray(stores)) {
       return Object.assign(
           readable({} as CombinedStoreValues<SR>, noop),
           storesRecord
       );
   }
   const reducer = (acc: Partial<CombinedStoreValues<SR>>, value: SR[string], i: number) => ({
       ...acc,
       [names[i]]: value
   });
   return Object.assign(
       derived(stores, (values) => values.reduce(reducer, {}) as CombinedStoreValues<SR>),
       storesRecord
   );
}
Выше тут было...
источник

A

Arushwl in Svelte [svelt]
Ну эт опять же кастом с дерайведом
источник

DK

Dmitry Kutran in Svelte [svelt]
Жаль, что люди продолжают бойлерплейтный код с редаксом писать
источник

A

Arushwl in Svelte [svelt]
А что значит бойлерплейтный?
источник

DK

Dmitry Kutran in Svelte [svelt]
Arushwl
А что значит бойлерплейтный?
Один и тот-же под копирку
источник

DK

Dmitry Kutran in Svelte [svelt]
Редюсер, экшн, эффект
источник

A

Arushwl in Svelte [svelt]
А. Ну этож привитое мышление трендом
источник

A

Arushwl in Svelte [svelt]
Решил вчера кстати свои тач евенты великом )))
источник

A

Arushwl in Svelte [svelt]
Но либка зачетная тож👍🏻
источник

DK

Dmitry Kutran in Svelte [svelt]
Arushwl
Но либка зачетная тож👍🏻
Если что - то не я ее писал)
источник

A

Arushwl in Svelte [svelt]
Ок )
источник