Size: a a a

2020 December 21

DK

Dan Kozlov in Svelte [svelt]
Мне кажется, мы зашли в тупик. Я стою на своём, что explicit is better than implicit. Я не хотел бы, чтоб в любой мой ивент-хендлер в родителе могло прилететь что-то от ДОМ-элемента, а чтобы от этого защититься, мне б надо было писать в каждом родителе проверки на это.
источник

DK

Dan Kozlov in Svelte [svelt]
Dan Kozlov
Но самый ключевой вопрос, парни, почему нельзя просто поднять наверх реф на элемент и в родителе уже предсказуемо с ним работать — вопрос для меня.
(хотя это и дичь, на мой взгляд)

Child.svelte
<script>
 export let ref;
</script>

<button bind:this='ref'>click</button>

Parent.svelte

<script>
 let ref: HTMLButtonElement | undefined;
 const events = ['click', 'longpressCustom'], cb = (e: Event) => console.log(e)
 $: if(ref) events.forEach(ev => ref.addEventListener(ev, cb))
</script>

<Child bind:ref />
И еще раз, это разве не решает вашу общую проблему? Ценой двух строк кода.
источник

A

Arushwl in Svelte [svelt]
Dan Kozlov
Но самый ключевой вопрос, парни, почему нельзя просто поднять наверх реф на элемент и в родителе уже предсказуемо с ним работать — вопрос для меня.
(хотя это и дичь, на мой взгляд)

Child.svelte
<script>
 export let ref;
</script>

<button bind:this='ref'>click</button>

Parent.svelte

<script>
 let ref: HTMLButtonElement | undefined;
 const events = ['click', 'longpressCustom'], cb = (e: Event) => console.log(e)
 $: if(ref) events.forEach(ev => ref.addEventListener(ev, cb))
</script>

<Child bind:ref />
Это работает?
источник

DK

Dan Kozlov in Svelte [svelt]
Arushwl
Это работает?
Я не тестил, но даже если я где-то накосячил, идея-то рабочая, конечно. Никаких проблем.
источник

DK

Dan Kozlov in Svelte [svelt]
Немного императивной работы с DOM API, но и задача, которая стоит… скажем так, неординарная.
источник

ON

Oleg N in Svelte [svelt]
Dan Kozlov
Но самый ключевой вопрос, парни, почему нельзя просто поднять наверх реф на элемент и в родителе уже предсказуемо с ним работать — вопрос для меня.
(хотя это и дичь, на мой взгляд)

Child.svelte
<script>
 export let ref;
</script>

<button bind:this='ref'>click</button>

Parent.svelte

<script>
 let ref: HTMLButtonElement | undefined;
 const events = ['click', 'longpressCustom'], cb = (e: Event) => console.log(e)
 $: if(ref) events.forEach(ev => ref.addEventListener(ev, cb))
</script>

<Child bind:ref />
раз пошла такая пляска, в родителе можно сразу писать
$('button').on(...) 😀
источник

A

Arushwl in Svelte [svelt]
Так-то да...
источник

ON

Oleg N in Svelte [svelt]
даже ещё короче выйдет
источник

AP

Alexander Ponomarev in Svelte [svelt]
Dan Kozlov
Мне кажется, мы зашли в тупик. Я стою на своём, что explicit is better than implicit. Я не хотел бы, чтоб в любой мой ивент-хендлер в родителе могло прилететь что-то от ДОМ-элемента, а чтобы от этого защититься, мне б надо было писать в каждом родителе проверки на это.
этим принципом можно оправдать что угодно и это главная проблема питона)
источник

А

Аидрфй in Svelte [svelt]
привет, у кого есть пример описания writable/readable стора в .d.ts, можете поделиться?
источник

AP

Alexander Ponomarev in Svelte [svelt]
Аидрфй
привет, у кого есть пример описания writable/readable стора в .d.ts, можете поделиться?
они же вроде описаны в тайпингах свелта
источник

MZ

Misha Zamkevich in Svelte [svelt]
Arushwl
Есть формулы вычисления мышечных сокращений? 😁
Ха ха
источник

A

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

СА

Сергей Артёмов... in Svelte [svelt]
что-то пошло не так?)
источник

A

Arushwl in Svelte [svelt]
Да не...
источник

A

Arushwl in Svelte [svelt]
Но есть репа, хочешь почекай )
источник

A

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

AP

Alexander Ponomarev in Svelte [svelt]
что у тебя там за тротлинг поставлен
источник

СА

Сергей Артёмов... in Svelte [svelt]
Arushwl
Да не...
ааа, сорян, не разглядел на гифке, что это выравнивание, а не переключение)
источник

A

Arushwl in Svelte [svelt]
Alexander Ponomarev
что у тебя там за тротлинг поставлен
Хде?
источник