Size: a a a

2020 November 13

AP

Alexander Ponomarev in Svelte [svelt]
мне нужно чтобы рамочный компонент не знал какой конкретно компонент он рендерит, чтобы он пропсом передавался. Рамочный компонент создает в себе инстанс этого компонента и дописывает в него доп класс
источник

AP

Alexander Ponomarev in Svelte [svelt]
ладно забейте если получится выложу, но на малине я ваще хз как это сделать. Там тоже svelte:component или malina:component?
источник

AP

Alexander Ponomarev in Svelte [svelt]
Типа <List ItemComponent={ Item } data={ array } />
источник

DK

Dan Kozlov in Svelte [svelt]
Alexander Ponomarev
Типа <List ItemComponent={ Item } data={ array } />
Не вижу ничего невозможного в этом. И стилизация будет работать как надо с глобальными классами.

Все это к телеге про маунт стилей при импорте вообще. Маунт при маунте компонента, словом, вполне норм :)
источник

AP

Alexander Ponomarev in Svelte [svelt]
Dan Kozlov
Не вижу ничего невозможного в этом. И стилизация будет работать как надо с глобальными классами.

Все это к телеге про маунт стилей при импорте вообще. Маунт при маунте компонента, словом, вполне норм :)
Мне кажется в динамике не норм. Ночью соберу семпл попробую
источник

AP

Alexander Ponomarev in Svelte [svelt]
Если у нас <List ItemComponent={ Item } data{ [] }/><Item/> а затем <List ItemComponent={ Item } data={ array }/><Item/> то список зарендерил все свои куски но ниодного айтема, поэтму стили кусков в доме раньше, затем идут стили айтема потому что он позже. Затем айтемы маунтятся в список и их стиль сильнее потому что позже запендился в дом. Но список хотел вешать свой класс на айтемы который должен быть сильнее и не может этого сделать.
источник

ON

Oleg N in Svelte [svelt]
Alexander Ponomarev
ладно забейте если получится выложу, но на малине я ваще хз как это сделать. Там тоже svelte:component или malina:component?
просто component и ссылка на него
<component:selected />
<component:{x ? selected.component : null} />
источник

МТ

Марк Танащук... in Svelte [svelt]
Oleg N
просто component и ссылка на него
<component:selected />
<component:{x ? selected.component : null} />
В последнем если лежит функция которая возвращает компонент, то оно тоже добавляет его?
источник

МТ

Марк Танащук... in Svelte [svelt]
() => x ? selected.component : null грубо говоря
источник

ON

Oleg N in Svelte [svelt]
Марк Танащук
() => x ? selected.component : null грубо говоря
оно так и работает, но () => не нужен
источник

DK

Dan Kozlov in Svelte [svelt]
Alexander Ponomarev
Если у нас <List ItemComponent={ Item } data{ [] }/><Item/> а затем <List ItemComponent={ Item } data={ array }/><Item/> то список зарендерил все свои куски но ниодного айтема, поэтму стили кусков в доме раньше, затем идут стили айтема потому что он позже. Затем айтемы маунтятся в список и их стиль сильнее потому что позже запендился в дом. Но список хотел вешать свой класс на айтемы который должен быть сильнее и не может этого сделать.
Так это всё теоритезирование.
На практике всё будет так:
1. стили в Item работают через хэш, они изолированы и имеют минимальный приоритет (как ты и хочешь)
2. чтобы стилизовать в List элементы Item, тебе надо оборачивать item в див и задавать глобальный стиль. У них будет второй приоритет.
3. чтобы стилизовать в главном родительском элементы Item, тебе надо оборачивать List в див и задавать глобальный стиль. У них будет наивысший приоритет, потому что раньше замаунчен компонент.

Но это всё, на мой взгляд, грязнющая грязь, я бы так никогда не делал. Может, я не настолько адвансд как ты, конечно.
источник

МТ

Марк Танащук... in Svelte [svelt]
Oleg N
оно так и работает, но () => не нужен
Если так можно, то у меня вопрос про такой кейс:

<component:{() => {
 setTimeout(() => {
   return x ? selected.component : null
 }, 5000)
}} />
источник

МТ

Марк Танащук... in Svelte [svelt]
Как это будет работать?
источник

DK

Dan Kozlov in Svelte [svelt]
Dan Kozlov
Так это всё теоритезирование.
На практике всё будет так:
1. стили в Item работают через хэш, они изолированы и имеют минимальный приоритет (как ты и хочешь)
2. чтобы стилизовать в List элементы Item, тебе надо оборачивать item в див и задавать глобальный стиль. У них будет второй приоритет.
3. чтобы стилизовать в главном родительском элементы Item, тебе надо оборачивать List в див и задавать глобальный стиль. У них будет наивысший приоритет, потому что раньше замаунчен компонент.

Но это всё, на мой взгляд, грязнющая грязь, я бы так никогда не делал. Может, я не настолько адвансд как ты, конечно.
Ну и всегда остаются обходные манёвры, типа увеличения специфичности селектора и !important. Если тебе норм заниматься вот этой свистопляской, наверное, ты и к увеличению специфичности должен норм относиться :)
источник

AP

Alexander Ponomarev in Svelte [svelt]
Dan Kozlov
Ну и всегда остаются обходные манёвры, типа увеличения специфичности селектора и !important. Если тебе норм заниматься вот этой свистопляской, наверное, ты и к увеличению специфичности должен норм относиться :)
я просто работаю с порядком импортов и маунт стилей происходит на ините модуля, там все детермированно и нет динамики в порядке стилей в доме
источник

ON

Oleg N in Svelte [svelt]
Марк Танащук
Если так можно, то у меня вопрос про такой кейс:

<component:{() => {
 setTimeout(() => {
   return x ? selected.component : null
 }, 5000)
}} />
return в таймауте, в шаблоне. безсмысленный код,
timeout нужно перенести в js блок, догда будет норм
источник

МТ

Марк Танащук... in Svelte [svelt]
Oleg N
return в таймауте, в шаблоне. безсмысленный код,
timeout нужно перенести в js блок, догда будет норм
То что он бессмысленный не значит что несуществующий :)
источник

ON

Oleg N in Svelte [svelt]
Alexander Ponomarev
это типичная ситуация для рамочного компонента типа
<List class="list"><Item class="item"></List>
вот набросал итем в листе, и раскрасил из приложения:
https://malinajs.github.io/repl/#/share/5faea38752ce0f00177fdc16

какая-то ошибка валится, потом разебрусь, но пример работает
источник

ON

Oleg N in Svelte [svelt]
а вот лист сам отрисовывает переданый итем. и пробрасывает класс на 2 уровня вниз:
https://malinajs.github.io/repl/#/share/5faea5c352ce0f00177fdc3a
источник

ON

Oleg N in Svelte [svelt]
Oleg N
а вот лист сам отрисовывает переданый итем. и пробрасывает класс на 2 уровня вниз:
https://malinajs.github.io/repl/#/share/5faea5c352ce0f00177fdc3a
class="red" - для листа
class:item="green" - лист передает в итем
источник