scoped
对于某一个组件,如果style添加上scoped属性,给当前子组件的结构中都添加上一个data-v-xxxx自定的属性。

vue是通过属性选择器给需要添加的元素加上样式。
scoped作用:只对当前的组件有用(样式)
在父组件中再添加一个子组件,子组件的根标签,会拥有父组件当中的自定义属性。

注意下面只有div标签有data-v-7ba5b90属性:

如果 子组件的根节点,和父组件中书写的样式相同,也会添加上相应的样式。

这里h3也就相当于根标签了,也具有父组件的data-v-7ba5b90属性:


小结:

加了scoped

加了scoped只对父组件和子组件的根标签有用,子组件的内容里面没有父组件的那个属性。
深度选择器
如果父组件的样式(scoped),还想影响子组件的样式,我们可以使用深度选择器。
深度选择器可以实现样式穿透:
原生CSS: >>>
less: /deep/
scss: ::v-deep

加上之后,自定义data-v-7ba5b90属性就没有用了。

深度选择器使得子组件有和父组件一样的属性。
版权声明:本文为qiaoyangla原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。