【发布时间】:2021-05-16 20:48:46
【问题描述】:
使用 v-deep 作为组合器已弃用 Vue 3:https://github.com/vuejs/rfcs/blob/master/active-rfcs/0023-scoped-styles-changes.md
我们有使用 SCSS 和 v-deep 的现有代码,如下所示:
.class ::v-deep {
.child-class1 {...}
.child-class2 {...}
}
编译成这样的:
.class[data-xxxxxx] .child-class1 {...}
.class[data-xxxxxx] .child-class2 {...}
在 Vue 3 中,不推荐使用这种语法,我们需要这样做:
.class {
::v-deep(.child-class1) {...}
::v-deep(.child-class2) {...}
}
我们必须为每个嵌套规则重复 v-deep。实际上,还有很多,还有一些复杂的规则。
有什么方法可以在 SCSS 中构造一个嵌套块,将所有内部规则都包装到这个 ::v-deep(...) 语法中?
我正在寻找这样的东西(不是实际语法):
::v-deep(&) {
.child-class1 {...}
.child-class2 {...}
}
除了自选择器 (&) 将具有相反的含义,引用子选择器而不是父选择器。
【问题讨论】:
标签: vue.js sass vuejs3 vue-loader vue-sfc