Size: a a a

2020 April 30

DK

Dmitry Kutran in Svelte [svelt]
@bingo347 давай писать односложно, без “мда”, так диалог не ведется
источник

ДБ

Дмитрий Беляев... in Svelte [svelt]
ну потому что это не ответ
в том числе и immer - это не ответ, ибо он никакого отношения к svelte/store не имеет
источник

DK

Dmitry Kutran in Svelte [svelt]
я понял, удачи в поисках
источник

A

Arushwl in Svelte [svelt]
Дмитрий Беляев
причем тут это вообще?
Может всёж лучше задачу в репл схематично изобразить? Много вопросов возникает к выбранному способу ... зачем ключи отдельно, зачем коллекции... и тп...
источник

ДБ

Дмитрий Беляев... in Svelte [svelt]
Arushwl
Может всёж лучше задачу в репл схематично изобразить? Много вопросов возникает к выбранному способу ... зачем ключи отдельно, зачем коллекции... и тп...
ок ща накидаю
источник

A

Arushwl in Svelte [svelt]
Вот отсюда почитать про АТОМАРНЫЕ сторы может пригодится https://t.me/sveltejs/59643
источник

DL

Demys Lima in Svelte [svelt]
English course about Svelte:  https://scrimba.com/g/glearnsvelte
источник

ДБ

Дмитрий Беляев... in Svelte [svelt]
Arushwl
Может всёж лучше задачу в репл схематично изобразить? Много вопросов возникает к выбранному способу ... зачем ключи отдельно, зачем коллекции... и тп...
https://ru.svelte.dev/repl/55110e194d6f41a396c394640e8ef6d1?version=3.21.0
вот что то такое нужно, только управляться часть будет не кнопками, а внешними событиями (например с websocket)
Интересует собственно то что в ItemsStore
источник

ДБ

Дмитрий Беляев... in Svelte [svelt]
если быть точным, то updateItem вызывается с вебсокета
источник

A

Artem in Svelte [svelt]
ребят, а когда компонент удаляется, то с него удаляются все обработчики?
источник

AS

Alexey Schebelev in Svelte [svelt]
Дмитрий Беляев
https://ru.svelte.dev/repl/55110e194d6f41a396c394640e8ef6d1?version=3.21.0
вот что то такое нужно, только управляться часть будет не кнопками, а внешними событиями (например с websocket)
Интересует собственно то что в ItemsStore
Во первых то, что в dirived в корне неверно. На каждое изменение стора идентификаторов, у тебя создаются подписки(а отписок никто не делает).
источник

AS

Alexey Schebelev in Svelte [svelt]
Вот я накидал тут как я это вижу, вроде бы не потерял функционал и немного структрировал: https://ru.svelte.dev/repl/9e1179f28e5b4632a8471cdce3f7fd40?version=3.21.0
источник

DN

Denys Novakov in Svelte [svelt]
Dmitry Kutran
в любом случае надо создавать уникальную функцию обработки на каждый компонент
В принципе уникальную функцию на каждый компонент не всегда нужно создавать, наверное в этом есть смысл только если нужно создать замыкание для каждого генерируемого методом forEch значения при перебирании в шаблоне. В остальных случаях лучше делегировать обработку события, чтобы не генерировать множества слушателей событий.
источник

ДБ

Дмитрий Беляев... in Svelte [svelt]
Alexey Schebelev
Во первых то, что в dirived в корне неверно. На каждое изменение стора идентификаторов, у тебя создаются подписки(а отписок никто не делает).
разве компонент Item не сделает отписок?
подписки то делает только он
источник

ДБ

Дмитрий Беляев... in Svelte [svelt]
Alexey Schebelev
Вот я накидал тут как я это вижу, вроде бы не потерял функционал и немного структрировал: https://ru.svelte.dev/repl/9e1179f28e5b4632a8471cdce3f7fd40?version=3.21.0
потерялся таки, теперь придется залезть внутрь стора и перебрать массив, когда придет обновление для конкретного id
у меня итемов в массиве тысячи и обновления точечные довольно часто с сервера прилетают
источник

ДБ

Дмитрий Беляев... in Svelte [svelt]
Alexey Schebelev
Вот я накидал тут как я это вижу, вроде бы не потерял функционал и немного структрировал: https://ru.svelte.dev/repl/9e1179f28e5b4632a8471cdce3f7fd40?version=3.21.0
если бы не стоял вопрос точечных быстрых обновлений, я бы просто сделал 1 стору с массивом, в котором сразу лежат объекты
источник

AS

Alexey Schebelev in Svelte [svelt]
Дмитрий Беляев
разве компонент Item не сделает отписок?
подписки то делает только он
export const items = derived(itemsID, ids => (
 ids.map(id => ({
   subscribe: itemsMap[id].subscribe
 }))
));

вот тут будет subscribe по любому изменению itemsID и не будет никаких отписок.
источник

ДБ

Дмитрий Беляев... in Svelte [svelt]
Alexey Schebelev
export const items = derived(itemsID, ids => (
 ids.map(id => ({
   subscribe: itemsMap[id].subscribe
 }))
));

вот тут будет subscribe по любому изменению itemsID и не будет никаких отписок.
почему он тут будет? я тут просто из Writable делаю Readable
источник

DN

Denys Novakov in Svelte [svelt]
Denys Novakov
В принципе уникальную функцию на каждый компонент не всегда нужно создавать, наверное в этом есть смысл только если нужно создать замыкание для каждого генерируемого методом forEch значения при перебирании в шаблоне. В остальных случаях лучше делегировать обработку события, чтобы не генерировать множества слушателей событий.
Хотя для событий компонентов не получится сделать делегирования. Разве что если добавить название события в каждый компонент-родитель на пути передачи события  (например on:message), то получится что-то на подобии всплытия.
источник

AS

Alexey Schebelev in Svelte [svelt]
Дмитрий Беляев
почему он тут будет? я тут просто из Writable делаю Readable
а да - глаз уже мыльный
источник