Size: a a a

2020 February 27

ДЧ

Дмитрий Чуканов in Svelte [svelt]
Вообщем починил тем что развернул просто через spred параметры
источник

IG

Iurii G. in Svelte [svelt]
Друзья, подскажите) делаю развертку массива через #each, а затем с помощью обычного js удаляю часть элементов этого массива из dom. Через некоторое время удаляю весь компонент, и при его удалении получаю ошибку Cannot read property 'removeChild' of null на внутренней ф-ии detach у svelte. Ф-я просто поочередно удаляет все dom элементы компонента из общего дерева. Как могу предположить, это из-за того что svelte пытается удалить то, что я уже удалил сам. Сталкивался кто нибудь? Как обойти препятствие?)
источник

DK

Dan Kozlov in Svelte [svelt]
Iurii G.
Друзья, подскажите) делаю развертку массива через #each, а затем с помощью обычного js удаляю часть элементов этого массива из dom. Через некоторое время удаляю весь компонент, и при его удалении получаю ошибку Cannot read property 'removeChild' of null на внутренней ф-ии detach у svelte. Ф-я просто поочередно удаляет все dom элементы компонента из общего дерева. Как могу предположить, это из-за того что svelte пытается удалить то, что я уже удалил сам. Сталкивался кто нибудь? Как обойти препятствие?)
Вам не это препятствие надо обходить, а просто не удалять самостоятельно дом-элементы. Вы императивно вмешиваетесь в декларативную компонентную структуру.
источник

IG

Iurii G. in Svelte [svelt]
Dan Kozlov
Вам не это препятствие надо обходить, а просто не удалять самостоятельно дом-элементы. Вы императивно вмешиваетесь в декларативную компонентную структуру.
Да, так и есть. Придется без each обойтись, через use добавить элементы в node и потом удалять)
источник

T

Th0r in Svelte [svelt]
Iurii G.
Да, так и есть. Придется без each обойтись, через use добавить элементы в node и потом удалять)
так а чем each мешает? создай массив в скрипте, а при необходимиых действиях удаляй из него элементы
источник

IG

Iurii G. in Svelte [svelt]
Th0r
так а чем each мешает? создай массив в скрипте, а при необходимиых действиях удаляй из него элементы
Тоже мысль, не работать с дом на прямую. Посмотрю хватит ли скорости)
источник

IG

Iurii G. in Svelte [svelt]
Спасибо!
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Дмитрий Чуканов
Вообщем починил тем что развернул просто через spred параметры
используй еще $: style =
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
иначе если пропсы будут меняться, стили не будут
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
и еще момент, с точки зрения того как это работает все. есть довольно большая разница между:

$: style = `color:${colorText};background-color:${colorButton};border-color:${borderColor};border-radius:${borderRadius}px;`
...
<button {style}>


и

<button style="color:{colorText};background-color:{colorButton};border-color:{borderColor};border-radius:{borderRadius}px;">
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
в обоих вариантах, стили будут обновляться если изменились пропсы (но только если в первом $:). однако в первом варианте будет значительно больше калькуляций стилей, потому что аттрибут style в таком применении не поддается статическому анализу и атрибут применяется каждый раз полностью, когда хотя бы одно свойство изменилось
источник

PM

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

PM

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

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Iurii G.
Тоже мысль, не работать с дом на прямую. Посмотрю хватит ли скорости)
стоп, так свелт работает с dom напрямую за тебя, поэтому все будет ок.))) стоит немного подробнее разобраться в state-based подходе к разработке. в свелт мы используем именно его, а тут на лицо просто нарушение подхода.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
в рамках state-based подхода ручные манипуляция с DOM должны неуклонно стремиться к 0
источник

IG

Iurii G. in Svelte [svelt]
Pavel 🦇 Malyshev
стоп, так свелт работает с dom напрямую за тебя, поэтому все будет ок.))) стоит немного подробнее разобраться в state-based подходе к разработке. в свелт мы используем именно его, а тут на лицо просто нарушение подхода.
Именно так, нарушение)) я так и написал выше и быстро догадался откуда ноги растут)) Просто есть готовый код на чистом js, было желание его подсунуть, благо свелт для этого досточно инструментов имеет)) но не вышло)) придется переписать по феншую
источник

DK

Dmitry Kutran in Svelte [svelt]
какие ui? Киты?
источник

DK

Dmitry Kutran in Svelte [svelt]
любой css фреймворк со свелтом совместим
источник

DK

Dmitry Kutran in Svelte [svelt]
киты
источник

DK

Dmitry Kutran in Svelte [svelt]
smelte
источник