если мы говорим о расширении компонента пользовательским модификатором то после создания компонента из фабрики он должен будет использовать по той же схеме что ты описал используя коспонент созданный из фабрики с другими модификаторами или чисто по текщей схеме
мое предложение только для создания компонента из библиотечных модификаторов - упрощает процесс создания компонентов при большом количестве модификаций
Что именно опишу? Давай будем разделять роли, меня как разработчика библиотеки и как её пользователя.
Вот я как пользователь установил себе библиотеку компонентов, хочу добавить кнопке модификатор, написал этот модификатор, библиотека о нём ничего не знает, мне наверное нужно как-то ей об этом модификаторе рассказать, как я должен это сделать?
давай по порядку я как пользователь взял библиотеку и хочу использовать то что там есть - я уже этот процесс описал выше такой вариант годится для предприятий где компоненты утверждены и модификации разработчиков не приветствуются и если добавляются то только командой разработки библиотеки или для зрелой библиотеки где все уже устоялось
если мы говорим про вариант сырой библиотеки - то данный вариант может и не иметь смысла в виду постоянног добавления/изменения модификаторов и даже в этом варианте если реализованы в библиотеке модификаторы - компонент можно создать при помощи фабрики а затем на него по стандартной схеме накатить еще кастомный модификатор потому что при сборке фабрика будет заменяться стандартным кодом
по сути: let button = createButton([...]) || \/ - Импортирую базовый компонент - Импортирую все модификаторы - Импортирую хелпер для композиции - Собираю с помощью хэлпера компонент с всеми модификаторами
Что именно опишу? Давай будем разделять роли, меня как разработчика библиотеки и как её пользователя.
Вот я как пользователь установил себе библиотеку компонентов, хочу добавить кнопке модификатор, написал этот модификатор, библиотека о нём ничего не знает, мне наверное нужно как-то ей об этом модификаторе рассказать, как я должен это сделать?
Нет. Всё ещё не понятно, как подключить пользовательский модификатор.
В моём примере выше, в шаге "Импортирую все модификаторы", я явно импортирую модификаторы, откуда угодно, из самой библиотеки или из моего проекта или из другой библиотеки.
Почему не говорим? Зачем тогда нужна библиотека компонентов, если её нельзя расширить?
вот и я так думаю зачем мне библиотека если я еще что-то должен там допилиавать? это библиотека или просто сырой код который еще надо напильником пилить??? вот если бы я взял к примеру yandex-ui что мне добавить к кнопке? и зачем?
речь идет о том что разработчик компонента хочет упростить сборку компонента из базового и какого-то набора модификаторов без большой затраты времени работы пальцами!
В yandex-ui ты можешь просто импортировать бандл, в этом случае ничего собирать не нужно.
import {Button} from 'yandex-ui/Button/Button.bundle/desktop'
Всё, у тебя есть кнопка с всеми модификаторами. Можно использовать.
Смысл yandex-ui в том, что такая возможность есть для тех, кому она нужна.
в том-то и вопрос что не нужны все модификаторы - их там сотни могут быть а нужно 33 из них! представь сколько это пальцами работы!!
а тут заботливый разработчик говорит: милый напиши вызов createButton и перечисли чеоез запятую все желаемые модификаторы а я за тебя все сделаю - все 33 модификатора соберу и верну тебе собранный компонент и ничего лишнего!
Я правильно понимаю, что ты предлагаешь изменить способ сборки компонентов так что - Пользователь не сможет добавлять свои модификаторы - Сборка станет не явной, а магической, дилегируется плагину сборщика - Для подсветки компонента в IDE нужно написать LangService - Профит в том, что не нужно вручную писать модификаторы
Я правильно понимаю, что ты предлагаешь изменить способ сборки компонентов так что - Пользователь не сможет добавлять свои модификаторы - Сборка станет не явной, а магической, дилегируется плагину сборщика - Для подсветки компонента в IDE нужно написать LangService - Профит в том, что не нужно вручную писать модификаторы
нет не верно - пользователь по-прежнему может все делать то что он и сейчас делает - данный способ создания компонента - помощь от разработчика которая сокращает время на создание компонента - ничего писать для IDE не нужно так как createButton описывается и типизируется в модуле button - полученный компонент при помощи фабрики ни чем не отличается от собранного в ручную (плагин заменяет код фабрики на стандартный процеес - вставляет все необходимые импорты и делает обычную сборку) поэтому этот компонент можно будет расширить при помощи кастомного модификатора стандартным способом
Я правильно понимаю, что ты предлагаешь изменить способ сборки компонентов так что - Пользователь не сможет добавлять свои модификаторы - Сборка станет не явной, а магической, дилегируется плагину сборщика - Для подсветки компонента в IDE нужно написать LangService - Профит в том, что не нужно вручную писать модификаторы
я понял почему ты не понимаешь - ты пропустил обсуждение для чего все это - это все предлагалось для упрощение сборки компонента и большого количества библиотечных модификаторов - простой хэлпер для быстрого использования
Нет. Всё ещё не понятно, как подключить пользовательский модификатор.
В моём примере выше, в шаге "Импортирую все модификаторы", я явно импортирую модификаторы, откуда угодно, из самой библиотеки или из моего проекта или из другой библиотеки.