局部作用域内(scoped)使用@import引入css引发的css全局污染的问题

在项目中我们可以使用下面这种方式引入外部的css文件

<style src='./main.css' scoped></style>

  也可以使用下面这种方式

<style scoped>
 @import './main.css' 
</style>

  但是这种方式 scoped不会生效 也就是通过@import引入的文件打包后会变成全局的

css-loader对import的文件会当做外部资源,那么我能理解为它是把import的css文件单独提取出来,并没有把其中的样式放在<style scoped>中解析,而是最后把<style>中计算结果和import的css文件混合后,交由style-loader最后解析为style标签加载在页面

 

<style scoped>
    @import '../../assets/css/home.css';  
</style>
/*这样写的话import的css文件会被编译为全局样式,但是引入less等预编译文件,就会局部生效*/

  


 

posted @ 2022-05-13 15:52  你丫才美工  阅读(555)  评论(0编辑  收藏  举报