Size: a a a

2020 April 27

AS

Alexey Schebelev in Svelte [svelt]
Константин
в компонент
в каокй компонент?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Igor Pellinen
ну проекты на svelte там можно запускать, формально
🤔 что-то есть сомнения. в repl реализована сборка проекта роллапом прямо в бразуере (веб воркере). не думаю что в jsfiddle  это есть
источник

EM

Eugene Maltsev in Svelte [svelt]
a.svelte
<div><slot /></div>

b.svelte
<A><SomeComponent Докинул пропсов  /> <A/>

🤔
источник

AS

Alexey Schebelev in Svelte [svelt]
дак кидайте туда пропсы - в чем проблема?
источник

EM

Eugene Maltsev in Svelte [svelt]
у меня такой же вопрос:D
источник

BS

Bohdan Shulha in Svelte [svelt]
Igor Pellinen
Конкретно в этом примере да, из-за синхронности. Мы плавно переходим к моему следующему стенду песочницы, который будет поинтереснее, асинхронным :3

Пока что могу поделиться таким примером на vue, который работает не во всех случаях: https://jsfiddle.net/igronus/a45tsyn7/, даже если выставить 100 миллисекунд.

PS. Во многих реальных js-движках даже с указанным нулевым значением таймаута по факту он будет составлять что-то типа 4 мс, насколько я помню. Но не суть, дело ведь не в этом.
> что-то типа 4 мс

Именно это я имел ввиду, когда говорил о “скорости” EventLoop 🙂

> Пока что могу поделиться таким примером на vue, который работает не во всех случаях

Во вью оно, действительно, может отрабатывать не так, как svelte. Всё из-за того, что они используют разные механизмы отслеживания изменений и, собственно, применения модификаций к dom. Но я более чем уверен, что разбиение тяжёлой работы на части должно выровнять ситуацию
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Denis Bazhenov
То-есть  как таковой иммутабельности из коробки в свелт нет. Есть только опция которую можно указать и следовать правилу при необходимости изменить объект, создавать новый и перекидывать в него неизменившиеся части. Так?
этой опцией ты просто говоришь ему  "чувак расслабься, я пишут иммутабильный код, поэтому можешь не дергаться на любое изменение объекта. проверяй ссылку и парься ТОЛЬКО если она изменилась."
источник

AS

Alexey Schebelev in Svelte [svelt]
Eugene Maltsev
у меня такой же вопрос:D
тьфу, думал это Константин
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Denis Bazhenov
Ещё вопросик это скорее к Павлу. Как исправить в документации ошибку? https://ru.svelte.dev/docs > 4. Добавьте префикс $ к хранилищу для получения его значения
... Каждый раз, когда вам нужно взять значение из хранилища, [»] вы можете [«] вы можете сделать это, поместив перед ним префикс с символом $.
Одно "вы можете" лишнее.
У нас есть совершенно прекрасный @AlexxNB который старается для всех нас и ему можно помогать
источник

К

Константин in Svelte [svelt]
<A><B /></A>

<!—A.svelte—>
<slot someProp="xxx">
источник

К

Константин in Svelte [svelt]
Константин
<A><B /></A>

<!—A.svelte—>
<slot someProp="xxx">
и чтобы someProp улетело в B
источник

К

Константин in Svelte [svelt]
ну типа декорирование
источник

AS

Alexey Schebelev in Svelte [svelt]
типо декарирование тогда B не в слот передается а пропсом и там внутри А с ним можно извращаться как угодно =)
источник

I

Igor Pellinen in Svelte [svelt]
Bohdan Shulha
> но в продакшен скорее всего не пустят

А по поводу прода - необходимо выполнить один из следующих пунктов, чтобы сохранить отзывчивость браузера и нервы пользователя:
- разбить вычисления на небольшие этапы (тот же setTimeout 0 в помощь)
- вынести вычисления в отдельный поток через webworker
- производить вычисления на сервере
1. Занимаюсь этим не я, но как я понял, уже пытались, и это в некоторых сложно предсказуемых случаях сильно влияет на производительность.
2. На первый взгляд выглядит как единственное адекватное решение, причем подходит так же и для vue/react/whatever.
3. Сразу нет, если бы это было возможным, то все было бы очень просто, и моих вопросов бы не возникало.
источник

BS

Bohdan Shulha in Svelte [svelt]
Igor Pellinen
1. Занимаюсь этим не я, но как я понял, уже пытались, и это в некоторых сложно предсказуемых случаях сильно влияет на производительность.
2. На первый взгляд выглядит как единственное адекватное решение, причем подходит так же и для vue/react/whatever.
3. Сразу нет, если бы это было возможным, то все было бы очень просто, и моих вопросов бы не возникало.
> 3. Сразу нет

Я догадывался. Добавил в качестве “а вдруг” 🙂
источник

I

Igor Pellinen in Svelte [svelt]
Bohdan Shulha
> 3. Сразу нет

Я догадывался. Добавил в качестве “а вдруг” 🙂
Не знаю деталей, но подозреваю что выходит очень дорого считать из-за большого количества клиентов как минимум в пике, т.е. чуть ли не в убыток будет.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Igor Pellinen
1. Занимаюсь этим не я, но как я понял, уже пытались, и это в некоторых сложно предсказуемых случаях сильно влияет на производительность.
2. На первый взгляд выглядит как единственное адекватное решение, причем подходит так же и для vue/react/whatever.
3. Сразу нет, если бы это было возможным, то все было бы очень просто, и моих вопросов бы не возникало.
зачем вообще тяжелые асинхронные вычисления во View слое?
источник

I

Igor Pellinen in Svelte [svelt]
В оригинале они асинхронные, это я просто тыкаю палкой новый для себя фреймворк своим традиционным способом, с пограничными примерами и, что называется, перегибами на местах.
источник

К

Константин in Svelte [svelt]
Alexey Schebelev
типо декарирование тогда B не в слот передается а пропсом и там внутри А с ним можно извращаться как угодно =)
в смысле B передать как рендер-пропс в A ?
источник

I

Igor Pellinen in Svelte [svelt]
Bohdan Shulha
> что-то типа 4 мс

Именно это я имел ввиду, когда говорил о “скорости” EventLoop 🙂

> Пока что могу поделиться таким примером на vue, который работает не во всех случаях

Во вью оно, действительно, может отрабатывать не так, как svelte. Всё из-за того, что они используют разные механизмы отслеживания изменений и, собственно, применения модификаций к dom. Но я более чем уверен, что разбиение тяжёлой работы на части должно выровнять ситуацию
Тоже не скажу что хорошо знаю. Но навскидку вью обновляет реальный DOM на основании своего virtual DOM только по завершению работы метода. И да, там есть "легальный" $forceUpdate(), но по факту он работает несколько не так, как ожидаешь, прочитав документацию: в приведенном примере это не поможет. Аналогично и с реактовским forceUpdate(), но тут я вообще только из соседнего огорода мельком смотрел. А requestAnimationFrame да, как минимум во вью мне помогал.
источник