Size: a a a

2021 March 03

AS

Alexey Schebelev in Svelte [svelt]
источник

AS

Alexey Schebelev in Svelte [svelt]
там svelte:template предлагали
источник

ER

Eric Rovell in Svelte [svelt]
Понял, спасибо
источник

AP

Alexander Ponomarev in Svelte [svelt]
ух наворотили чето =) типа использование темплейта от компонента отличается только тем this это string а в случае компонента не string?
источник

AP

Alexander Ponomarev in Svelte [svelt]
имхо рассматривать такое в серьез без рассмотрения svelte:element опять приведет к лютым костылям
источник

AP

Alexander Ponomarev in Svelte [svelt]
если взять кейсы реакта где определение  что нужно создать при вызове React.createElement компонент или хмтл элемент идет от того передана строка или функция
источник

AP

Alexander Ponomarev in Svelte [svelt]
то с вводом таких вот темплейтов уже хрен соберешь такой компонент в котором нужно дать возможность пробросить тип обертки пропсом, потому что строкой может оказаться внутренний темплейт
источник

AP

Alexander Ponomarev in Svelte [svelt]
например
function Link({ tag: Wrapper, ...rest }) {
     return <Wrapper {...rest}/>
}

такое уже не получится никак сделать, а все кто хочет svelte:element именно к такому и стремятся
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
мне кажется что инлайн компоненты нафиг не нужны. в основном пригождаются обычные partials
источник

M

Mitch in Svelte [svelt]
Добрый день. Есть вопрос: можно ли в svelte без костылей дедуплицировать одну из нод компонена? Пример компонента:
<div>
 <input type="text" list="datalist-id">
 <datalist id="datalist-id">
   {#each some_const as item}
     <option value="{item}">
   {/each}
 </datalist>
</div>

datalist здесь генерируется из константы, в которой пара сотен значений. Если компонент будет добавлен на страницу несколько раз, то и datalist будет создан тоже несколько раз, что абсолютно не нужно, да и id у всех будет одинаковый (проверял, svelte изолирует классы, но не id). Вот хотелось бы сделать так, чтобы datalist генерировался только для первого инстанса. Пробовал завернуть в {#if !document.querySelector('#datalist-id') }, но не работает, видимо, потому что сначала выполняются условия для всех компонентов, потом уже результат вставляется в DOM, в итоге от такого if никакой пользы.
источник

AS

Alexey Schebelev in Svelte [svelt]
не понял - вы хотите, чтобы datalist на сранице был один, а ид у него разные?
источник

M

Mitch in Svelte [svelt]
Alexey Schebelev
не понял - вы хотите, чтобы datalist на сранице был один, а ид у него разные?
Нет, комментарий про id — просто наблюдение. То, что он одинаков — как раз хорошо, так как все, кроме одного, можно удалить, и ничего не сломается. Вопрос в том, как их не создавать изначально.
источник

M

Mitch in Svelte [svelt]
Можно, конечно, снаружи передавать индекс, и если он не 0, тогда не создавать, но это как раз не подходит под пожелание "без костылей".
источник

AS

Alexey Schebelev in Svelte [svelt]
я бы сделал два отдельных компонента Datalist и Input обоим можно сделать проп id. Datalist размещал в единичном варианте в одном из парентов компонента где будут Inputы.
источник

AS

Alexey Schebelev in Svelte [svelt]
если неизвестно заранее что в чайлде будут инпуты(если они скрываются или показываются в зависимости от условий), т, чтобы зря не висел столь большой список нод в доме, уже придется делать "костыли". Я бы в <script context="module"> даталиста экспортировал стор, на который подписывались бы инстансы импутов. Когда подписок не останется - можно спрятать список и наоборот.
источник

K

Kaifat in Svelte [svelt]
Ребят, а подскажите как в rollup импортировать пакеты, которые не компилированы из ts в js? При билде падает с ошибкой:
[!] Error: The keyword 'interface' is reserved (Note that you need plugins to import files that are not JavaScript)
источник

M

Mitch in Svelte [svelt]
Alexey Schebelev
я бы сделал два отдельных компонента Datalist и Input обоим можно сделать проп id. Datalist размещал в единичном варианте в одном из парентов компонента где будут Inputы.
Тоже костыль, который требует снаружи компонента как-то вмешиваться в его реализацию. Сейчас подумал, можно попробовать количество инстансов вынести в store, и создавать только для первого. Попробую.
источник

AS

Alexey Schebelev in Svelte [svelt]
сейчас я попробую накидать репл - не такой уж и костыль
источник

M

Mitch in Svelte [svelt]
Alexey Schebelev
если неизвестно заранее что в чайлде будут инпуты(если они скрываются или показываются в зависимости от условий), т, чтобы зря не висел столь большой список нод в доме, уже придется делать "костыли". Я бы в <script context="module"> даталиста экспортировал стор, на который подписывались бы инстансы импутов. Когда подписок не останется - можно спрятать список и наоборот.
Заранее известно (input всегда виден), поэтому с этим можно не заморачиваться.
источник

AP

Alexander Ponomarev in Svelte [svelt]
Kaifat
Ребят, а подскажите как в rollup импортировать пакеты, которые не компилированы из ts в js? При билде падает с ошибкой:
[!] Error: The keyword 'interface' is reserved (Note that you need plugins to import files that are not JavaScript)
добро пожаловать =) я писал об этом, вам придется либо настроить в точности такой же препроцесс как у пакета, либо собрать пакет и вручную написать d.ts к каждому свелт файлу потому что свелт их не сделает =)
источник