Size: a a a

2021 March 02

КС

Кирилл Спасибович... in Svelte [svelt]
<script>
 let value = 1;
</script>

<input bind:value type="number" />

{value === null}

<button on:click={() => value = undefined}>undefined</button>

<style>
 button {
   display: block;
 }
</style>
источник

КС

Кирилл Спасибович... in Svelte [svelt]
чекните в репле
источник

КС

Кирилл Спасибович... in Svelte [svelt]
мне кажется этот тип в свелте должен быть расширен
источник

КС

Кирилл Спасибович... in Svelte [svelt]
Alexey Schebelev
Переслано от Alexey Schebelev
Моё предложение по иному принципу по добавлению классов из парента. Кроме классов в компонент наверное можно style тоже передать. А еще неплохо бы и экшены тоже. Например, сейчас ни в Малине, ни в Свелт никак не навесить экшн на элемент внутри компонента. Например захочется на компонент кастомного инпута из какой-либо UI библиотеки навесить экшн цепляющий maskinput, и никак.

Все это объединяет, то что нужно знать на какую DOM-ноду навешивать класс, стиль или экшн. Поэтому предлагаю ввести так называемый Anchor(якорь), с помощью которого в компоненте можно указать на какую ноду навешивать поступающие в компонент классы, стили и экшены. Кроме того можно сделать якоря в компоненте с разными именами, тогда отдельно можно задать стили как для враппера, так и для поля ввода(например). Как и прочие директивы на элементах, якорь будет иметь свой значок - пусть "^".

// Card.xht
<div ^root>
  <div ^header>{title}</div>
  <slot/>
</div>

// App.xht
<Card title="hello" style="margin: 20px" class:header="red" />


Якорь ^root значит - что туда будут прицепляться переданные классы, стили и экшены, по-дефолту.
ну я уже знаю что ответят пингвинокондуитрии - это пропсы со спецповедением, нельзя так делать
источник

КС

Кирилл Спасибович... in Svelte [svelt]
кстати а что помешало бы отнеймспейсить атрибуты
источник

КС

Кирилл Спасибович... in Svelte [svelt]
типа

<Component attr:class="something" />
источник

КС

Кирилл Спасибович... in Svelte [svelt]
тогда это и не пропсы уже никакие
источник

КС

Кирилл Спасибович... in Svelte [svelt]
хотя как тогда директивы отправлять хз
источник

КС

Кирилл Спасибович... in Svelte [svelt]
а куда кстати за типы к тайпскрипту у свелта писать ? в /svelte, или в /language-tools ?
источник

DK

Dan Kozlov in Svelte [svelt]
Кирилл Спасибович
а куда кстати за типы к тайпскрипту у свелта писать ? в /svelte, или в /language-tools ?
Они ж не сами типы пишут, вроде. Это разве не из тайпскрипта прямо берется?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
Было обсуждение на тему {#slot}, но выбрали фрагмент =\
Потому что уже юзается <slot />
источник

КС

Кирилл Спасибович... in Svelte [svelt]
Dan Kozlov
Они ж не сами типы пишут, вроде. Это разве не из тайпскрипта прямо берется?
типа HTMLInputElement ?
источник

DK

Dan Kozlov in Svelte [svelt]
Кирилл Спасибович
типа HTMLInputElement ?
Да. Это ж TSX под капотом.
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexey Schebelev
Переслано от Alexey Schebelev
Моё предложение по иному принципу по добавлению классов из парента. Кроме классов в компонент наверное можно style тоже передать. А еще неплохо бы и экшены тоже. Например, сейчас ни в Малине, ни в Свелт никак не навесить экшн на элемент внутри компонента. Например захочется на компонент кастомного инпута из какой-либо UI библиотеки навесить экшн цепляющий maskinput, и никак.

Все это объединяет, то что нужно знать на какую DOM-ноду навешивать класс, стиль или экшн. Поэтому предлагаю ввести так называемый Anchor(якорь), с помощью которого в компоненте можно указать на какую ноду навешивать поступающие в компонент классы, стили и экшены. Кроме того можно сделать якоря в компоненте с разными именами, тогда отдельно можно задать стили как для враппера, так и для поля ввода(например). Как и прочие директивы на элементах, якорь будет иметь свой значок - пусть "^".

// Card.xht
<div ^root>
  <div ^header>{title}</div>
  <slot/>
</div>

// App.xht
<Card title="hello" style="margin: 20px" class:header="red" />


Якорь ^root значит - что туда будут прицепляться переданные классы, стили и экшены, по-дефолту.
Так можно ведь передать функцию экшена пропсом, разве нет? 🤔
источник

AS

Alexey Schebelev in Svelte [svelt]
Конечно, можно. И класс тоже. Но в ui либах каждый будет делать пропсы как хочет, никакой системы.
источник

AS

Alexey Schebelev in Svelte [svelt]
Не будет точнее, а делает
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Alexey Schebelev
Конечно, можно. И класс тоже. Но в ui либах каждый будет делать пропсы как хочет, никакой системы.
Ну и что) у компонента в UI ките есть апи. Его и юзаем.
источник

КС

Кирилл Спасибович... in Svelte [svelt]
хорошо бы иметь один проверенный утвержденный способ как это делается
тогда не придётся для каждого компонента привыкать к его версии делания
источник

AS

Alexey Schebelev in Svelte [svelt]
Пойди найди либу где позаботились о том чтобы экшн на инпут можно было навесить
источник

AP

Alexander Ponomarev in Svelte [svelt]
Dan Kozlov
Да. Это ж TSX под капотом.
на тсх написаны отдельный тайпинги
источник