Vue中引入外部css导致的全局污染

问题

当在前端使用vue开发时,给特定页面做好了css并且通过import去导入到当前页面;在编译运行之后发现其他页面也受到影响更改了样式,即"全局污染"。

污染方式

  1. 单组件污染
    单个组件样式,影响到了其他的组件的样式。
    单个组件污染的问题主要表现在< style>样式< /style>上不加 scoped;
    scoped的作用就是让样式只作用于当前组件,如果没有 scoped,那么样式就有可能影响其他组件。

  2. 多组件污染
    多个组件在会共用一套CSS代码时,就会造成多组件污染的情况:
    <style scoped> @import "assets/css/common.css"; </style>
    这种方式也会造成全局污染的情况;但是已经加了scoped,最后无效的原因是**"@import"** ,原因如下:
    @import并不是直接引入css代码到页面,而是发起新的不带scoped的请求获得样式资源;因此,这种引用方式是全局的,从而引起全局污染。

    解决办法

    在VUE中,页面是被允许添加多个Style、Script的,所以可以再添加一个Style通过src的方式去获取样式资源就能解决样式污染问题:

    复制代码
    <style src="@/assets/css/yours.css"  scoped>
    </style>
相关推荐
1024肥宅2 分钟前
面试和算法:常见面试题实现与深度解析
前端·javascript·面试
计算机程序设计小李同学4 分钟前
基于 Spring Boot 和 Vue.js 技术栈的网上订餐系统
vue.js·spring boot·后端
float_六七23 分钟前
行级与块级元素:核心区别与应用场景
开发语言·前端·javascript
毕设十刻36 分钟前
基于Vue的家教预约系统7fisz(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
前端无涯38 分钟前
深度解析:fetch 与 Promise 结合实战及面试重点
前端·javascript
风舞红枫41 分钟前
node代理vue打包后的文件,实现本地测试
前端·javascript·vue.js·node.js
helloCat41 分钟前
记录CI/CD自动化上传AppGallery遇到的坑
android·前端·api
Yanni4Night44 分钟前
使用URLPattern API构建自己的路由器 🛣️
前端·javascript
web守墓人1 小时前
【前端】garn:使用go实现一款类似yarn的依赖管理器
前端
全栈陈序员1 小时前
Vue 实例挂载的过程是怎样的?
前端·javascript·vue.js·学习·前端框架