Виталий Столяров, это вы кажется не имели опыта работы с проектом без шаблонного дизайна где каждый элемент уникальный и имеет сложное поведение и влияние на другие части проекта.
Виталий Столяров, вопрос был в разнице между классическим BEM со структурой компонентов, рекомендуемой во vue style guide и моим вариантом, а не в том стоит ли вообще использовать BEM
Виталий Столяров, я достаточной аргументации не увидел. Всё что было перечислено очень посредственно соотносится с реалиями моих проектов.
Мы тут спорим о BEM? Суть вопроса вообще в другом была.
Виталий Столяров, это рекомендация для всех проектов на vue.js и больших в том числе. Если речь пойдёт о тысячах компонентов, то конечно можно их разделить на несколько папок, но не более. 50-100 компонентов в папке это вполне нормально. Точно не надо делать отдельную папку под каждый уровень вложенности. У меня около 120 компонентов в моём проекте и потенциально я рассчитываю на 250-300 компонентов и такое кол-во компонентов вполне хорошо укладывается в 3 папки. Больше не нужно. Попробуйте сами так сделать. Я объективно стал меньше времени тратить на то чтобы найти и открыть нужный компонент, при чём значительно.
А про то что вы говорите про тесную связанность. Я и не говорил, что везде должна быть тесная связанность. Я всеми руками за переиспользуемые компоненты, но это не должно перерастать в фанатизм. Есть много случаев когда тесносвязанные компоненты абсолютно необходимы. А если в какой-то момент понадобится переиспользовать один из таких компонентов - это отличный повод для того чтобы вынести этот компонент в common или на один или несколько уровне вложенности выше.
Потому что я сам раньше использовал кучу папок и глубокую вложенную структуру, а потом решил перечитать style guide vue.js (потому как я это делал уже больше 3 лет назад последний раз) и увидел рекомендацию того что следует иметь плоскую структуру и отображать вложенность в название компонентов. Благодаря сортировки по алфавиту компоненты с близким названием группируются в одном месте и навигация по проекту становится значительно легче. Я это попробовал на своём проекте и мне понравилось. А потом я начал развивать эту идею и это вылилось в данный вопрос.
Aetae, тут разве что подходит передавать css переменные, но всё равно под вопросом остаётся специфичность класса. Вот ты назначил класс какому-то компоненту и передал туда какие-то значения через css переменные например. Каким образом этот класс переопределит класс самого компонента? Они будут иметь одинаковую специфичность и всё будет зависеть от порядка css в конченом css файле и полагаться на это явно не стоит.
Aetae, стоп. Вот тут я явно что-то недопонимаю. Вот есть у меня компонент Input.vue с какой-то стандартной длиной. И мне нужно где-то сделать его не такой длины, а другой конкретной длины. Что я должен сделать?