Vue.js 2 : Scoped style not working with sass/scss

标签 vue.js vuejs2

在我的 Vue.js 组件中,当我将样式设置为“scoped”时,样式将被忽略:

<style lang="sass" scoped>

我在控制台中收到以下错误:

[HMR] unexpected require(609) to disposed module

如果我不添加“scoped”属性,它会按预期工作。

最佳答案

将我的评论转化为答案。

当你使用 scoped style(s) 时,Vue 会为组件中的所有标签添加具有唯一值的 data 属性,然后静默修改你的 CSS/SASS 选择器以依赖此 data 属性。

例如,.list-container:hover 变为 .list-container[data-v-21e5b78]:hover

如果您需要一个深度选择器——也就是说,它会影响子组件——您可以使用组合器

<style scoped>
.a >>> .b { /* ... */ }
</style>

将被编译成

.a[data-v-f3f3eg9] .b { /* ... */ }

如果 SASS 无法解析 >>> 组合器,您可以将其替换为 /deep/

如果你不使用组合器那么

<style scoped>
.a > .b { /* ... */ }
</style>

会被编译成

.a > .b[data-v-f3f3eg9] { /* ... */ }

关于Vue.js 2 : Scoped style not working with sass/scss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51470954/

相关文章:

javascript - 如何在 Vue.js 3 中使用 vue router 将 404 路由重定向到 Home

docker - Dockerized Vue应用程序-我应该使用docker还是node env变量?

javascript - 有没有更好的方式来发送表单数据?

vue.js - 为什么 Vue 的受控 `&lt;input/>` 没有处理程序仍然可以在其中输入文本?

javascript - vue-cli项目修改端口号的方法

php - 如何将 VueJS 变量传递到 Laravel Blade 路由

javascript - Vue Router 中的语言作为参数

javascript - vue js布局中的组件不正确

javascript - 用vue过滤表格行

javascript - 如何修复 'Access to XMLHttpRequest has been blocked by CORS policy' 重定向不允许预检请求只有一条路线