Svelte отлично избавляет от шаблонов и лишнего лишнего кода. Я хочу зайти в этом настолько далеко, насколько могу.
Я считаю, что, используя ответ @skeletizzle, мне пришлось бы добавить переменную в контейнер Accordions для каждого Accordion и его дочернего элемента. ЭТО я хочу исключить (это загрязняет пространство имен контейнера для тривиальной операции). Поскольку Accordion и его дочерний элемент находятся в отношениях P / C - они знают друг о друге, и компилятор может установить прямую связь. Подумайте о подразумеваемом интерфейсе, в котором Accordion просматривает своего дочернего элемента и находит свойство с именем, скажем, «заголовок», автоматически, реактивно, использует его для своего собственного свойства заголовка.
Что я собираюсь сделать, так это использовать магазины, хотя, как было сказано, я считаю, что они слишком тяжелые, но не думаю, что у меня есть альтернатива.
WrappedComponent.svelte
<script context="module">
import { writable } from 'svelte/store'
export let thisComponentHeader = writable('default header')
</script>
App.svelte
import WrappedComponent, { thisComponentHeader } from './WrappedComponent.svelte'
...
<Accord header={$thisComponentHeader}>
<WrappedComponent />
</Accord>
Еще есть переменная. но он пропущен в определении импорта
Одна вещь, которую это предотвращает, - это наличие более 1 экземпляра компонента.
person
user49011
schedule
23.05.2020