Size: a a a

2020 March 10

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexander 👨🏻‍💻 Levin
надо чтобы глобальный стейт был svelte/store ?
Да для глобального стейта есть 3 вида сторов + любые кастомные на их основе или с нуля. Главное чтобы контракт соблюдался. Вообще пихать все в глобальный стор не принято как правило
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexander 👨🏻‍💻 Levin
а вот, допустим, есть некий датастор который с сервером синхрится по http и юзер через формы и списки оттуда данные получает отфильтрованными и вносит в них изменения иногда - будет оно реактивно в свелт?
С сервером синкается в обе стороны?
источник

AL

Alexander 👨🏻‍💻 Levin in Svelte [svelt]
да
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
На веб сокетах?
источник

AL

Alexander 👨🏻‍💻 Levin in Svelte [svelt]
не все сущности на сервер, но десяток
источник

AL

Alexander 👨🏻‍💻 Levin in Svelte [svelt]
Pavel 🦇 Malyshev
На веб сокетах?
рест-апи
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Это в одну тогда
источник

AL

Alexander 👨🏻‍💻 Levin in Svelte [svelt]
сокет обеспечивает уведомления о наличии изменений
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Ок
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Изменения улетают пачками или мелкими значениями? Типа ввёл и сразу улетело или нажал сохранить и вся форма разом?
источник

AL

Alexander 👨🏻‍💻 Levin in Svelte [svelt]
нажал сохранить и контроллер может от 1 до нескольких изменений в разные сущности отправить
источник

AL

Alexander 👨🏻‍💻 Levin in Svelte [svelt]
чаще всего в одну и почти всегда по кнопке, а не само
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Если я верно понял кейс, то как раз для этого использую svelte-asyncable. Единственное для чего он пока не годится - это если нужно поддерживать встроенные 2way- биндинги в значения стора хранящего сложные типы.
источник

PM

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


<input bind:value={$store.foo.bar}>
источник

AL

Alexander 👨🏻‍💻 Levin in Svelte [svelt]
Вкратце архитектура такая:

1 UI-компоненты знают текущий маршрут и в зависимости от параметров задают себе набор данных из глобального стора

2 При этом, в момент их визуализации данных там может еще не быть, так как данные запрашивает с сервера отдельный контур, который запросы к серверу строит на основе параметров текущего маршрута

3 Еще отдельный контур слушает сокет и обновляет данные в сторе если там ему приходит что есть что обновить.

Как только в сторе благодаря 2 или 3 появляются/обновятся данные, подходящие под фильтр UI-компоненты, то они должны в ней показаться.
источник

AL

Alexander 👨🏻‍💻 Levin in Svelte [svelt]
Поэтому и вопрос, как UI может среагировать на то что в сторе Articles появились данные с articleCategoryId = константа из параметра текущего урла?
источник

AL

Alexander 👨🏻‍💻 Levin in Svelte [svelt]
Без магии я так понимаю только слать уведомления чтобы UI перезапросил данные по своим предикатам
источник

AL

Alexander 👨🏻‍💻 Levin in Svelte [svelt]
Или какая-то есть новая магия в свелт для этого?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Да тут вроде ничего сложного
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Чуть позднее накидаю концепт на asyncable сторе
источник