scoped 的特点:简单来说就是让当前vue文件的css样式只作用当前文,就算类名相同也不会影响到其他vue文件
实现原理:PostCSS给一个组件中的所有dom添加了一个独一无二的动态属性,编辑的时候会使用类名加属性选择器的方式,有了这个随机成的动态属性,就能确保每个类名都是唯一的
当你在其他页面引入这个按钮,并且想改变他的样式的使用,使用 如下方式并不会起到作用,
因为编译后的类名是 .comm-step__btn[data-v-41b1d754] { }
.comm-step__btn {
background-color: 'red'
}
需要使用 /deep/ 进行样式穿透
/deep/ .comm-step__btn {
background-color: 'red';
}
不太建议使用 scoped,项目大了会随处可见 /deep/ ,并且渲染性能不大好,推荐使用BEM命名规范