Ответ 1
Я только что обнаружил, что scoped style
также влияет на дочерние компоненты.
Поэтому я нашел решение, но не уверен, что это лучшая практика, но я чувствую себя очень хорошо.
Создайте WrapperComponent
, и я поместил здесь scoped style
и небольшой шаблон.
<template>
<div>
<slot></slot>
</div>
</template>
<style lang="scss" scoped>
/* css style that will apply to all children */
</style>
Что здесь происходит, так это то, что когда мы обертываем любые компоненты этим WrapperComponent
, шаблон передаст HTML через slot
без каких-либо изменений, и стиль сможет применяться с этого момента.
В mixins
я импортирую эту оболочку и обертываю шаблон компонента с помощью WrapperComponent
. Вот пример.
import WrapperComponent from './WrapperComponent'
let MyMixins = {
template: '<wrapper-component>
<div>
Whatever HTML code here
</div>
</wrapper-component>',
components: {
WrapperComponent,
},
};
Когда мы используем этот mixins
или дочерний компонент, стиль из WrapperComponent
будет применяться автоматически, а также может использоваться с другими группами компонентов, которые хотят использовать тот же родительский стиль.