1. vue 组件的特殊编号
首先当我们打开有复杂组件关系 vue
项目时,会发现很多 html
标签上会有一串自定义属性:
这些自定义属性是 vue
根据不同组件给予的不同编号。
我们知道,每个组件中的样式标签上,只要加上 scoped
属性就表示这个 style
中的样式只会在当前组件中生效,并且不会影响到其他组件,**原理就是每个样式上都用属性选择器被加上了属于这个组件的编号: **
这样做的好处就是让组件的样式独立,需要共用的样式会被写在公共 css
中。
但是同时当我们的组件是一个父子关系时,并且想父组件能修改子组件的样式,因为每个组件的样式有特定的属性编号,这时就不能修改到属于子组件的样式。这时就需要用到 deep
深层作用选择器。
2. deep
深层作用选择器的使用
既然我们知道了不同组件有不同的属性编号,我们想要父组件能够修改到子组件的样式,就获取到这个对应的属性编号就可以了。
而 deep 就可以帮助我们获取到深层(子组件)的属性编号:
/deep/ div {
/* 这时这个样式中的样式就可以影响到子组件中 div 的样式了 */
}
不过我们想要修改深层样式,也是因为项目中存在像 element-ui 这样的组件,这时有需求要修改一个路由组件的子组件里的样式,一般这个时候我们需要用到 deep 深层作用选择器,不过也有其他很多用法,我也需要更深度的学习。如果有任何理解不对的地方,希望谅解。