vue3 :deep() 没有作用
最近学习vue3,写组件时发现deep样式不生效,f12搜索能看到样式代码是生成了的,前面有[data-v-xxxxx]这种组件id选择器,拿组件id搜索一下,发现对应的div下没有我的插槽组件,所以没匹配到,然后反应过来modal弹窗是生成到body上的,自然没对上,解决办法有如下几种:
- 使用modal组件一般自带的自定义class Prop, 然后 自定义class + deep,这样就没用vue自己生成的组件id选择器
- 使用全局样式
- modal不要直接apend到body根节点上,我用的antd vue,别的组件库的modal如果动态生成应该也有这个选项,可以apend到父组件下
其他注:
deep需要在style scope里使用
不生效基本都是选择器未匹配到,自己f12可以搜索一下编译的style,看一下为什么未匹配到。
Q.E.D.