Как внедрить услугу в стройные компоненты внука? - PullRequest
1 голос
/ 14 октября 2019

У меня есть несколько классов обслуживания (с некоторыми методами «получить данные для этих параметров» и некоторыми методами «вычислить вещи для этих параметров»), которые я хотел бы внедрить в несколько компонентов в моей иерархии компонентов Svelte. На данный момент я вижу следующие варианты для этого, ни один из них не очень привлекателен:

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

В Vue я бы написал плагин, который добавляет свойства, доступные во всех компонентах Vue. Как это можно сделать на Svelte?

1 Ответ

0 голосов
/ 15 октября 2019

Я согласен с @richharris. Магазин (отдельный файл), вероятно, будет наиболее эффективным. Особенно, если у вас есть 3+ уровня Dom, получающих данные.

...