Size: a a a

Svelte [svelt] - All about Svelte JavaScript framework.

2021 October 11

PM

Pavel 🦇 Malyshev in Svelte [svelt] - All about Svelte JavaScript framework.
Мне кажется тебе бы perlite понравился. Декларативное описание виджетов с императивным использованием )))
источник

MS

M S in Svelte [svelt] - All about Svelte JavaScript framework.
Желание понятно. И чем вызвано понятно. Но в реальных паттернах  все все-равно усложняется и домешивается. И вместо простоты получается та же сложность что и с императивным подходом, только без малейшего представления сколько тактов займет смена состояния.
источник

MS

M S in Svelte [svelt] - All about Svelte JavaScript framework.
И много по нему спецов?
источник

MS

M S in Svelte [svelt] - All about Svelte JavaScript framework.
Спасибо за наводку, пороюсь.
источник

AP

Alexander Ponomarev in Svelte [svelt] - All about Svelte JavaScript framework.
любой кто прочтет документацию
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt] - All about Svelte JavaScript framework.
У меня в приложениях на свелт обычно не смешивается)
источник

MS

M S in Svelte [svelt] - All about Svelte JavaScript framework.
Я вот, смотрю, а если
// App.svelte

<Modal bind:this={modal[0]} />
<Modal bind:this={modal[1]} />
<Modal bind:this={modal[2]} />
<div className="inner">
    <Modal bind:this={modal[3]} />
</div>

Все вручную нужно отслеживать. Может, к ноудам удобнее рефы прикреплять? Это просто размышления.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt] - All about Svelte JavaScript framework.
не понял. bind:this это и есть рефы
источник

MS

M S in Svelte [svelt] - All about Svelte JavaScript framework.
Да думаю просто как лучше организовать. Ну, вот есть, к примеру


// App.svelte
<div className="cards-list">
{#each cards as card,i}
 <Card bind:this={cardRefs.list[i]} />
{/each}
</div>
<div className="card-selected">
  <Card bind:this={cardRefs.selected} />
</div>

И можно через cardRefs в жиэс работать. А можно к руту  <Card> добавлять реф на инстанс компонента.
(  
//Card.svelte
<script>
export cmpRef;
let  rootNode;
afterUpdate(  () => { rootNode.cmpRef=cmpRef})
</script>
<div className="card" bind:this={rootNode}>
)

( если конструкция работоспособна, проверять надо )
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt] - All about Svelte JavaScript framework.
я бы такой фигней конечно вообще не занимался, но если бы прям очень надо было, то я бы написал экшн и везде его подключал
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt] - All about Svelte JavaScript framework.
короче я тут наверное не помощник, слишком специфичный кейс и очень не органичный имхо
источник

MS

M S in Svelte [svelt] - All about Svelte JavaScript framework.
А свелт нигде не связывает ДОМ компонента  с инстансом? То есть, имея в руках ДОМноуд рута компонента, можно получить ссыль на инстанс? ( что-то вроде  HTMLElement.$$$.$$.ref )
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt] - All about Svelte JavaScript framework.
нет никакого DOM рута у компонента, да и почему он должен быть то?
источник

MS

M S in Svelte [svelt] - All about Svelte JavaScript framework.
Да уже знаю что нет. Саша вчера рассказал.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt] - All about Svelte JavaScript framework.
и это прекрасно, в том же Vue приходится невероятные костыли писать из-за того что там такого нет
источник

MS

M S in Svelte [svelt] - All about Svelte JavaScript framework.
Это про vue-fragments?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt] - All about Svelte JavaScript framework.
нет, там банально нельзя сделать вот так:


{#if condition}
  <h1>{title}</h1>
  <h2>{subtitle}</h2>
{/if}
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt] - All about Svelte JavaScript framework.
для всех кейсов, когда надо иметь 2 ноды на одном уровне, приходится юзать <template>
источник

MS

M S in Svelte [svelt] - All about Svelte JavaScript framework.
ага (
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt] - All about Svelte JavaScript framework.
примерно тоже самое в ангуляре, а реакт хотя бы теперь есть <></> но тоже не вот прям торт
источник