区别:
scoped使用方式更简单,更适合中小型web应用程序,局限性是
如果你子组件的元素上有一个类已经在这个父组件中定义过了,那么这个父组件的样式就也会应用到子组件上。
module更适合大型应用程序,它会让你的样式更加灵活安全,易于控制。
和scoped
不一样的地方就是在于所有创建的类可以通过$style
对象获取。因此使用module
,就需要通过:class
来绑定$style
这个对象。它的好处是,当我们在HTML中查看这个元素时,我们可以立刻知道它所属的是哪个组件。
注意:
如果页面需要引用外来ui样式,例如mint-ui等,想要修改mint-ui局部样式的话,在scoped和module作用下,简单的在当前页覆盖其css样式是不生效的。处理方式:1、直接修改
mint-ui源代码,较为复杂麻烦,不建议。2、重新创建一个css文件,并在main.js中引入,注意要引用在mint-ui文件的下方,相当于覆盖其原css,推荐。3、根据此博客(https://www.w3cplus.com/vue/scoped-styles-vs-css-modules.html?spm=a2c4e.11153940.blogcont693040.10.73bd4b78vm5IqZ),在scoped
样式中,这种情况可以使用>>>
连接符或者/deep/
来解决