Скажу сразу, суть вопроса, возможно, не донесу с первого раза, так как очень много деталей. Вопрос скорее не для ответа одной строчкой, а для разсуждений. Если что то недописал, спрашивайте, буду отвечать, так как интресно все-таки разобраться в этом всеm:))
Вопрос по поводу организации верстки во vue-компонентах. На многих форумах читал, что понятия "vue-компонент" и "блок в БЭМ" практически идентичны со стороны верстки. То есть условный vue-компонент == .list-component в БЭМе. Но на практике часто встречаются моменты, когда в vue-компоненте лучше использовать несколько БЭМ блоков(обычно этот блок может использоваться в нескольких компонентах и не несет в себе никаких функциональных действий(то есть не требуется его выносить в отдельный vue-компонент, так как требуется только идентичное его css-оформление)). Для каждного отдельного БЭМ-блока для удобства я создаю отдельный scss-файл и имортирую его в нужном vue-компоненте
@import "assets/scss/components/public/user-elements/arrow"; // простой БЭМ блок
@import "assets/scss/components/public/component/lesson-about"; // простой БЭМ блок
@import "assets/scss/components/public/component/times"; // простой БЭМ блок
@import "assets/scss/components/public/component/finished-lesson"; // БЭМ который совпадает из vue-компонентом
Согласно БЭМу я могу использовать миксины, то есть у меня может быть блок из класами - .arrow.finished-lesson__arrow - для того чтобы немного подкоректировать "стандартный" блок.
Поближе к сути вопроса - правильно ли импортить блок, который используеться в нескольких компонентах в каждном из этих компонентов или же его можно подключить как то глобально?
плюс, если подключать блок в каждном компоненте, это исключает использование миксин(после загрузки нового компонента с блоком .arrow, класс .finished-lesson__arrow перестает действовать).
нащет испольнования scoped - тоже есть своя теория))