Size: a a a

2020 April 27

S

Steve in Svelte [svelt]
Denis Bazhenov
Немножко поизучал иммутабельность.Возник вопрос > В Свелт своя реализация иммутабельности или опирается на что то уже имеющееся?
Или
источник

DB

Denis Bazhenov in Svelte [svelt]
ну там например mory.js (самый плохой пример который может быть), immutable.js, seamless-immutable.js ...
источник

AS

Alexey Schebelev in Svelte [svelt]
Я бы не назвал реализацией то что Svelte просто подталкивает к тому что нужно переприсваивать все ссылочные типы данных при их изменении. Ну например с тем же immutable.js  при желании хорошо сработается, мне кажется.
источник

DB

Denis Bazhenov in Svelte [svelt]
Alexey Schebelev
Я бы не назвал реализацией то что Svelte просто подталкивает к тому что нужно переприсваивать все ссылочные типы данных при их изменении. Ну например с тем же immutable.js  при желании хорошо сработается, мне кажется.
То-есть  как таковой иммутабельности из коробки в свелт нет. Есть только опция которую можно указать и следовать правилу при необходимости изменить объект, создавать новый и перекидывать в него неизменившиеся части. Так?
источник

DB

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

EM

Eugene Maltsev in Svelte [svelt]
пул реквестом=)
источник

T

Th0r in Svelte [svelt]
Denis Bazhenov
То-есть  как таковой иммутабельности из коробки в свелт нет. Есть только опция которую можно указать и следовать правилу при необходимости изменить объект, создавать новый и перекидывать в него неизменившиеся части. Так?
иммутабельность - это не какая-то определенная технология, а просто как ты работаешь с данными. не мутируешь свойства объекта, а создаешь новый объект с другими данным - всё, значит у тебя иммутабельный объект.
svelte:options immutable=true показывает, чтобы проверялся не объект целиком, а сравнивал их по ссылкам
источник

DB

Denis Bazhenov in Svelte [svelt]
Eugene Maltsev
пул реквестом=)
Супер фотография 👍 ссылку на репу хотя-бы дайте.
источник

EM

Eugene Maltsev in Svelte [svelt]
Denis Bazhenov
Супер фотография 👍 ссылку на репу хотя-бы дайте.
ну там кнопочка на странице - ее клик и попадаешь на репу с пулреквестом
источник

EM

Eugene Maltsev in Svelte [svelt]
Denis Bazhenov
Супер фотография 👍 ссылку на репу хотя-бы дайте.
источник

DB

Denis Bazhenov in Svelte [svelt]
Eugene Maltsev
ну там кнопочка на странице - ее клик и попадаешь на репу с пулреквестом
Всё понял - надо отмотать вверх страницу.
источник

I

Igor Pellinen in Svelte [svelt]
Отлично! Мой первый же пример из реальной жизни на svelte, и я понял, что ничего не понимаю ни в этом фреймворке, ни в джаваскрипте.
https://codesandbox.io/s/peaceful-worker-rnbgy?file=/App.svelte:99-123
источник

I

Igor Pellinen in Svelte [svelt]
Вопрос: почему при изменении значения переменной isComputing не происходит отображения/сокрытия элементов, забинденных на него?
источник

BS

Bohdan Shulha in Svelte [svelt]
Igor Pellinen
Вопрос: почему при изменении значения переменной isComputing не происходит отображения/сокрытия элементов, забинденных на него?
В данном случае промис полностью синхронный, он не учавствует в IO и, соответственно, не отдаёт управление. Можно попробовать вместо promise сделать requestAnimationFrame. В идеале, конечно, необходимо разбивать вычисления на чанки или всунуть их в веб-воркер
источник

BS

Bohdan Shulha in Svelte [svelt]
> requestAnimationFrame

Попробовал с ним, он тоже в моём браузере не отдал управление 🙂

setTimeout() отработал правильно
источник

I

Igor Pellinen in Svelte [svelt]
Спасибо за ответ. С requestAnimationFrame я имел дела еще в vue, и, похоже, там это единственный "незаконный, но корректный" способ обновить DOM. Возможно, и в реакте тоже, не проверял.
источник

К

Константин in Svelte [svelt]
Alexey Schebelev
Передача пропсов из комопнента в контекст его слота, потом можно в паренте сделать так: <MyCmp let:instance>My instance is {instance}</MyCmp>
Добавлял let, но внутрь компонента не проходит почему-то
источник

К

Константин in Svelte [svelt]
Мне нужно в сам компонент прокинуть. Это возможно через слот?
источник

I

Igor Pellinen in Svelte [svelt]
Bohdan Shulha
> requestAnimationFrame

Попробовал с ним, он тоже в моём браузере не отдал управление 🙂

setTimeout() отработал правильно
Таймаут в реальной жизни далеко не всегда можно применить. На моем примере. Если поставить слишком маленькое значение, то не всегда будет работать на старых или сильно загруженных машинах. Если поставить большое — таймаут в некоторых случаях будет больше чем само вычисление. Как workaround на этапе разработки подойдет, но в продакшен скорее всего не пустят.
источник

NA

Nurbek Akhmedov in Svelte [svelt]
Константин
Мне нужно в сам компонент прокинуть. Это возможно через слот?
Я прокидовал
источник