Size: a a a

2020 September 22

PM

Pavel 🦇 Malyshev in Svelte [svelt]
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Вопрос лишь в цели - если не кейс, что я описал выше, то не понятно, зачем
Экшены имхо проще всего понять как «лайфсайкл для DOM элементов синхронизированный со Svelte»
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Кейсов полно, самый базовый - засинкать ванильную либу со state-based флоу свелта
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Экшн это просто функция которая вызывается при монтировании ноды и может принимать кусок стейта компонента  и возвращать объект с метолами update и destroy,для обновления и подчистки
источник

МТ

Марк Танащук... in Svelte [svelt]
Pavel 🦇 Malyshev
Экшн это просто функция которая вызывается при монтировании ноды и может принимать кусок стейта компонента  и возвращать объект с метолами update и destroy,для обновления и подчистки
Кстати, а если повесить экшн* на родителя, то экшн отработает тогда, когда все дочерние компоненты смонтируются и можно будет абсолютно любой дочерний тег через querySelector получить?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Шикарная статья от @AlexxNB : https://m.habr.com/ru/post/486626/
источник

МТ

Марк Танащук... in Svelte [svelt]
Или только на 1 уровне вложенности можно ноды получить?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
Кстати, а если повесить экшн* на родителя, то экшн отработает тогда, когда все дочерние компоненты смонтируются и можно будет абсолютно любой дочерний тег через querySelector получить?
Не помню, не частый кейс для меня. Чекни и расскажешь, но думаю в рамках компонента разметка будет доступна.
источник

МТ

Марк Танащук... in Svelte [svelt]
Кейс:

<div use:getNode>
 <Components/>
 <div class="firstLevelTag"></div>
</div>


Здесь если в getNode используя querySelector получить firstLevelTag, то все ок, а если использовать querySelector('.secondLevelTag') (в Components который лежит) то результат я наблюдал странный
источник

МТ

Марк Танащук... in Svelte [svelt]
если нод штук 50 то оно могло то работать то не работать
источник

МТ

Марк Танащук... in Svelte [svelt]
Воспроизводится ошибка только если устройство на котором код воспроизводится достаточно лагучее, по этому репл не вышло создать :(
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
Кейс:

<div use:getNode>
 <Components/>
 <div class="firstLevelTag"></div>
</div>


Здесь если в getNode используя querySelector получить firstLevelTag, то все ок, а если использовать querySelector('.secondLevelTag') (в Components который лежит) то результат я наблюдал странный
Так себе кейс, в том смысле что делать так уж точно не надо - лезть в другой компонент с селектом по дому
источник

МТ

Марк Танащук... in Svelte [svelt]
Pavel 🦇 Malyshev
Так себе кейс, в том смысле что делать так уж точно не надо - лезть в другой компонент с селектом по дому
Components - просто обертка над each с стилями
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Вообще похоже как и сказал - в рамках компонента должно быть ок
источник
2020 September 23

AT

Andrii Tymchenko in Svelte [svelt]
на хабре дизайн обновили?
источник

MZ

Misha Zamkevich in Svelte [svelt]
Pavel 🦇 Malyshev
Экшены имхо проще всего понять как «лайфсайкл для DOM элементов синхронизированный со Svelte»
Паша, у тебя есть на примете что почитать на тему приёмов работы с ванильными js библиотеками?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Misha Zamkevich
Паша, у тебя есть на примете что почитать на тему приёмов работы с ванильными js библиотеками?
Да там нечего особо изучать то:

function myaction(node, state) {
 // тут монтируем ванильную либу на ноду и делаем работу, используя state и отстреливая ивенты на node

 return {
    update(newState){
         // тут согласуем ванилу с новым state
    },
    destroy() {
         // тут чистим все что понаделали: уделяем либу с ноды, чисти обработчики и тп
   }
}
источник

PM

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

PM

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

MZ

Misha Zamkevich in Svelte [svelt]
Pavel 🦇 Malyshev
Да там нечего особо изучать то:

function myaction(node, state) {
 // тут монтируем ванильную либу на ноду и делаем работу, используя state и отстреливая ивенты на node

 return {
    update(newState){
         // тут согласуем ванилу с новым state
    },
    destroy() {
         // тут чистим все что понаделали: уделяем либу с ноды, чисти обработчики и тп
   }
}
Спасибо. Чувствую у меня ещё будет несколько вопросов на эту тему. Нужно только всё переварить ))
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Misha Zamkevich
Спасибо. Чувствую у меня ещё будет несколько вопросов на эту тему. Нужно только всё переварить ))
Без проблем
источник