Size: a a a

2020 March 11

DK

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

A

Arushwl in Svelte [svelt]
А как кашерно навесить в each функцию на item по ключу?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Илья Мясин
Всем привет!

А расскажите пожалуйста, как в svelte принято решать задачу повторного использования логики для разных визуальных представлений?
Например, нужно сделать два компонента, выглядящих по-разному на десктопе и мобилке, но использующих одинаковый стейт/методы. Во vue это делается через миксины, или через наследование, или через composition api в третьей версии.

Погуглил, ничего конкретного не нашел, нашел старый issue, где г-н Харрис говорит “I'm of the 'favour composition over inheritance' school”, но как собственно делать composition - не объясняет =)

Еще есть https://www.npmjs.com/package/svelte-extend - по смыслу похоже, но звездочек маловато =) и хотелось бы обойтись без лишних зависимостей.
можно вынести скрипт в отдельный файл и подключать его в 2-х компонентах
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
для того нужно еще поставить svelte-preprocess
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
если я конечно понял задачу
источник

A

Arushwl in Svelte [svelt]
Arushwl
А как кашерно навесить в each функцию на item по ключу?
источник

A

Arushwl in Svelte [svelt]
Типа того?
источник

T

Th0r in Svelte [svelt]
on:click={()=>click(item)}
источник

A

Arushwl in Svelte [svelt]
У меня массив объектов со ссылками внутри. Повесил клик на каждый, работает по кол-ву элементов раз.
источник

A

Arushwl in Svelte [svelt]
Th0r
on:click={()=>click(item)}
Это решит?
источник

T

Th0r in Svelte [svelt]
Arushwl
Это решит?
не знаю, тыж не показываешь свой кейс, что у тебя должно передаваться в функцию, что за item
источник

A

Arushwl in Svelte [svelt]
Это не кейс ) это я нашёл сниппет, подумал может так
источник

A

Arushwl in Svelte [svelt]
Кейс в on:click=function()
источник

T

Th0r in Svelte [svelt]
Arushwl
Это не кейс ) это я нашёл сниппет, подумал может так
я и говорю что ты именно свой кейс не показываешь, так что угадать - решит или нет - я не знаю
источник

A

Arushwl in Svelte [svelt]
В массиве
источник

G

GNU/Vsevolod.rs in Svelte [svelt]
Одинаковое поведение, разве что this внутри функции click будет разный
источник

A

Arushwl in Svelte [svelt]
on:click={ handleShopItems(shop.key), setTimeout(() => {navigate('shop')}, 1000) }
источник

A

Arushwl in Svelte [svelt]
Вот функция вызывается кол-во элементов раз
источник

A

Arushwl in Svelte [svelt]
Помню тут обсуждали как выносить обработчик из each
источник

T

Th0r in Svelte [svelt]
Arushwl
on:click={ handleShopItems(shop.key), setTimeout(() => {navigate('shop')}, 1000) }
перенеси всё в отдельную функцию и вызывай ее с одним параметром, не надо всё в одну строку пихать
источник