Size: a a a

2020 October 14

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Svelte [svelt]
Oleg N
а как вызывать setMetrics при изменении value?
subscribe to store, no?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
сторы глобальны, а если нужен локальный стейт?
источник

ON

Oleg N in Svelte [svelt]
а как сделать если нужно изменить стор при изменении value?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
к тому же по-сути это тоже самое, просто механика реативности резолвится в колпайлтайме, а сторы это чисто рантайм история
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Svelte [svelt]
Oleg N
а как сделать если нужно изменить стор при изменении value?
+1 стор (кроме стора на value) - нет?
источник

ON

Oleg N in Svelte [svelt]
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
+1 стор (кроме стора на value) - нет?
не понятно,

вот есть большой компонент, value меняется из 20 мест,
теперь понадобилось сохранять это значение в стор:
1) можно переписать все эти 20 мест + стор, плюс отслеживать все будущие правки компонента с value
2) а можно просто в одну строку отслеживать изменение value, и сохранять
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Svelte [svelt]
Oleg N
не понятно,

вот есть большой компонент, value меняется из 20 мест,
теперь понадобилось сохранять это значение в стор:
1) можно переписать все эти 20 мест + стор, плюс отслеживать все будущие правки компонента с value
2) а можно просто в одну строку отслеживать изменение value, и сохранять
другая $: someResultOnValue = ....(value) - и эта новая переменная будет стором, всё норм. Нет?
источник

ON

Oleg N in Svelte [svelt]
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
другая $: someResultOnValue = ....(value) - и эта новая переменная будет стором, всё норм. Нет?
под капотом все равно вызывается некая функция.

ну вместо стора, может быть взаимодествие с DOM/внешними  компонентами (jquery) и т.п.
вообщем кейсы есть
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Svelte [svelt]
Oleg N
под капотом все равно вызывается некая функция.

ну вместо стора, может быть взаимодествие с DOM/внешними  компонентами (jquery) и т.п.
вообщем кейсы есть
И нет нормального воркэраунда, кроме $: someFunc()?
источник

ON

Oleg N in Svelte [svelt]
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
И нет нормального воркэраунда, кроме $: someFunc()?
ну один есть, зачем второй?
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Svelte [svelt]
Oleg N
ну один есть, зачем второй?
Чтоб не возникало дискуссий на 200+ сообщений о том "почему это не работает?".
Имхо, один "тру-вэй" лучше, чем 1+100500 способов "выстрелить себе в ногу" - такое лучше запрещать
источник

ON

Oleg N in Svelte [svelt]
Pavel 🦇 Malyshev
внесешь рацпреложение в тот ишак?
ща прошёл дебагером по примеру из ишью, в теории даже проще можно пофиксить,
тут в $$.update происходит вызов $$invalidate, и свелте его посути игнорирует, а вместо этого нужно помечать что он был вызван, и запускать $$.update ещё раз, что-то типа:

вместо $$.update();

так:
for(let i=0;i<10 && $$.invalidateCalled;i++){
 $$.invalidateCalled=false;
 $$.update();
};
источник

ON

Oleg N in Svelte [svelt]
Oleg N
ща прошёл дебагером по примеру из ишью, в теории даже проще можно пофиксить,
тут в $$.update происходит вызов $$invalidate, и свелте его посути игнорирует, а вместо этого нужно помечать что он был вызван, и запускать $$.update ещё раз, что-то типа:

вместо $$.update();

так:
for(let i=0;i<10 && $$.invalidateCalled;i++){
 $$.invalidateCalled=false;
 $$.update();
};
если цикл прошел 10 раз, то вероятно есть зацикленное изменение
источник

NK

ID:0 in Svelte [svelt]
#tools #router

Подборка роутеров (добавляйте отсутствующие)

https://twitter.com/lihautan/status/1315482668440580096?s=20
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Svelte [svelt]
Oleg N
если цикл прошел 10 раз, то вероятно есть зацикленное изменение
Магическое "10 раз"? Почему не 20? Что-то тут не так (интуиция)
источник

ON

Oleg N in Svelte [svelt]
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Магическое "10 раз"? Почему не 20? Что-то тут не так (интуиция)
это магическое число из ангуляра, они наверно его как-то высчитали опытным путем, обычно оно не должно превышать 2-3,  если доходит до 10 - то вероятно что-то пошло не так
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Svelte [svelt]
Oleg N
это магическое число из ангуляра, они наверно его как-то высчитали опытным путем, обычно оно не должно превышать 2-3,  если доходит до 10 - то вероятно что-то пошло не так
Равняться на ангуляр? - не думаю, что это хорошая идея. Не важно, как они эти магические "10 раз" получили - свелт не обязан тащить в себя глупости других фреймворков
источник

MZ

Misha Zamkevich in Svelte [svelt]
Pavel 🦇 Malyshev
Объясняется это очень просто даже без знания внутрянки:
1) анализируются только непосредственные выражения внутри $:
2) для того что свелт может проанализировать, порядок не важен
3) для того что свелт не может проанализировать, нужно выставлять порядок вручную
Вообще это всё можно очень легко объяснить картинкой, но в доках нет картинок (((((

Я сделал два примера, наглядно иллюстрирующих как очерёдность влияет на конечный результат:

В случае выражения в {} последовательность будет сохранятся независимо от объявления:

https://ru.svelte.dev/repl/1e591287bf0a4b1aae13cf242e3dcc4e?version=3.29.0


В случае вынесения в функцию
последовательность будет выполнена в порядке объявления + всё сломается при неправильной последовательности:

https://ru.svelte.dev/repl/2856f497489c4c9caaafadea8505e47a?version=3.29.0
источник

MZ

Misha Zamkevich in Svelte [svelt]
Хз, зачем я это делал, просто мысли как это оформить в понятный раздел доков о важности очередности.
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Svelte [svelt]
Misha Zamkevich
Вообще это всё можно очень легко объяснить картинкой, но в доках нет картинок (((((

Я сделал два примера, наглядно иллюстрирующих как очерёдность влияет на конечный результат:

В случае выражения в {} последовательность будет сохранятся независимо от объявления:

https://ru.svelte.dev/repl/1e591287bf0a4b1aae13cf242e3dcc4e?version=3.29.0


В случае вынесения в функцию
последовательность будет выполнена в порядке объявления + всё сломается при неправильной последовательности:

https://ru.svelte.dev/repl/2856f497489c4c9caaafadea8505e47a?version=3.29.0
Ну вот!
Только не надо это "фиксить", плиз. Пусть девелоперы руки себе выпрямляют, а не пишут то, что "свелт не может проанализировать"
источник