У меня есть несколько классов обслуживания (с некоторыми методами «получить данные для этих параметров» и некоторыми методами «вычислить вещи для этих параметров»), которые я хотел бы внедрить в несколько компонентов в моей иерархии компонентов Svelte. На данный момент я вижу следующие варианты для этого, ни один из них не очень привлекателен:
- Передайте услуги как реквизиты . Некоторые промежуточные компоненты не нуждаются в услугах и просто передают их. И это увеличивает число реквизитов.
- Оберните сервисы магазином . Это похоже на неправильное использование функции реактивного магазина для чего-то, для чего она не предназначена. Данные, поступающие из службы, в основном статичны и не очень реактивны.
- Используйте службы в компоненте верхнего уровня, передавайте результаты в качестве подпорок дочерним компонентам . Это увеличило бы количество подпорок еще больше, поскольку у меня есть некоторые компоненты «макета» между корневым и дочерним компонентами. Затем эти компоненты макета должны будут передавать все реквизиты.
В Vue я бы написал плагин, который добавляет свойства, доступные во всех компонентах Vue. Как это можно сделать на Svelte?