Size: a a a

2020 December 17

11

1 1 in Svelte [svelt]
то есть если у тебя, скажем, грид 30 на 1000, и в каждой ячейке условие "автофокус если автофокусируемая ячейка  равна текущей", то при смене автофокусируемой ячейки оно задолбается считать.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Dan Kozlov
Особенно учитывая, что onMount и onDestroy недоступны вне компонентов :)
вообще onMount доступен вне компонента, fyi
источник

DK

Dan Kozlov in Svelte [svelt]
Pavel 🦇 Malyshev
вообще onMount доступен вне компонента, fyi
источник

DK

Dan Kozlov in Svelte [svelt]
Вот это сейчас неожиданно, кстати.
Круто.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexander Ponomarev
ну экшены же апдейт вызывают на определеной фазе лайфсайкла, например после комита в дом или я не прав?

чтобы повторить именно ту фазу лайфсайкла тебе надо будет вручную прописать в соответствующий метод onMount, afterUpdate, onDestroy и еще мб детектить какой-то чендж.
update коллбек экшена вызывается только если изменились переданные в экшн параметры
источник

AP

Alexander Ponomarev in Svelte [svelt]
Pavel 🦇 Malyshev
update коллбек экшена вызывается только если изменились переданные в экшн параметры
я знаю спасибо =)
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Eric Rovell
Ещё непонятно почему нельзя ставить атрибут slot на компоненты. Приходится обёртками... Хотя зарезервировали и обещали сделать давно
уже объяснял. слот попадает в компонент как просто HTML. компонент который реализует слот должен прям “увидеть” slot аттрибут в HTML. можно эмулировать это например автоматом оборачивая в div с аттрибутом slot, но имхо это хуже
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexander Ponomarev
не проблема не в этом, проблема в том что ребенок маунтит инпут когда какой-то пропс true например.

Предположим ты поставил пропс true и тебе надо вызвать фокус. Как это сделать? Если ты вызовешь сразу, то комита в дом еще не было и метод focus не указывает ни на что.
можно подождать tick как обычно
источник

ER

Eric Rovell in Svelte [svelt]
Pavel 🦇 Malyshev
уже объяснял. слот попадает в компонент как просто HTML. компонент который реализует слот должен прям “увидеть” slot аттрибут в HTML. можно эмулировать это например автоматом оборачивая в div с аттрибутом slot, но имхо это хуже
Да, я так и пытался. Только, сделав пропс, чтобы передать имя слота через компонент в дом элемент внутрь. Свелт не даёт.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
если делать императивно, но компонент может экспортировать метод focus и внутри сам ждать tick и потом уже делать реальный фокус
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Eric Rovell
Да, я так и пытался. Только, сделав пропс, чтобы передать имя слота через компонент в дом элемент внутрь. Свелт не даёт.
ты это сделать не сможешь, это может делать компилятор, но лично я думаю что лучше очевидная обертка в виде <div slot=“”> чем точно такая же но сгенерированная компилятором
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Dan Kozlov
Я просто сделаю use:focus={{enabled: showProp}} и всё.
нормуль способ
источник

ER

Eric Rovell in Svelte [svelt]
Pavel 🦇 Malyshev
ты это сделать не сможешь, это может делать компилятор, но лично я думаю что лучше очевидная обертка в виде <div slot=“”> чем точно такая же но сгенерированная компилятором
Не хотелось бы плодить обертки без надобности😔 свелт пишет в предупреждении, что slot пропс зарезервировали для этой фичи, подожду
источник

К

Константин in Svelte [svelt]
Pavel 🦇 Malyshev
ты это сделать не сможешь, это может делать компилятор, но лично я думаю что лучше очевидная обертка в виде <div slot=“”> чем точно такая же но сгенерированная компилятором
оба хуже. Лучше без обёрток )
источник

К

Константин in Svelte [svelt]
(5 копеек вставлены, сдачи не надо))
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Eric Rovell
Не хотелось бы плодить обертки без надобности😔 свелт пишет в предупреждении, что slot пропс зарезервировали для этой фичи, подожду
еще раз, в текущей реализации слоты приходят как DOM элементы. там вообще уже нет понятия компонента. соответственно чтобы правильно монтировать слот в нужное место надо чтобы был 1 рутовый DOM элемент с аттрибутом slot. остальные DOM элементы просто улетают в default слот
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Константин
оба хуже. Лучше без обёрток )
я тоже так думаю., поэтому и не форсирую эту фичу
источник

ER

Eric Rovell in Svelte [svelt]
Pavel 🦇 Malyshev
еще раз, в текущей реализации слоты приходят как DOM элементы. там вообще уже нет понятия компонента. соответственно чтобы правильно монтировать слот в нужное место надо чтобы был 1 рутовый DOM элемент с аттрибутом slot. остальные DOM элементы просто улетают в default слот
Если в компоненте один родитель, почему бы и нет? Можно выдавать предупреждение
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Pavel 🦇 Malyshev
еще раз, в текущей реализации слоты приходят как DOM элементы. там вообще уже нет понятия компонента. соответственно чтобы правильно монтировать слот в нужное место надо чтобы был 1 рутовый DOM элемент с аттрибутом slot. остальные DOM элементы просто улетают в default слот
условно:

slots: [
   { tagName: ‘A’, … },
   { tagName: ‘DIV’, slot: ‘mySlot’ },
]
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Eric Rovell
Если в компоненте один родитель, почему бы и нет? Можно выдавать предупреждение
то есть ты предлагаешь валиться с ошибкой если в компоненте не один рут-элемент?

типа юзаешь такой:

<Component1 slot=“one” />
<Component2 slot=“two” />
источник