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>
相关推荐
xhxxx25 分钟前
AI打字机的秘密:一个 buffer 如何让机器学会“慢慢说话”
前端·vue.js·openai
Irene199129 分钟前
在 Vue 3 中使用 工作者线程
vue.js·工作者线程
韩曙亮29 分钟前
【Web APIs】BOM 浏览器对象模型 ⑥ ( location 对象 | location 常用属性和方法 | URL 简介 )
前端·javascript·dom·url·bom·location·浏览器对象模型
用户214118326360229 分钟前
CC-Switch配置切换神器:5秒搞定多设备同步,坚果云让配置永不丢失
前端
勤奋的懒洋洋35039 分钟前
前端实现多个图片打包下载
前端
豐儀麟阁贵1 小时前
9.5格式化字符串
java·开发语言·前端·面试
春生野草1 小时前
Ruoyi前端基于vue的脚手架的目录解析
前端·javascript·vue.js
m0_740043731 小时前
Axios拦截器 -- 请求拦截器和响应拦截器
开发语言·前端·javascript
程序修理员1 小时前
java+vue实现文件下载进度条
java·开发语言·vue.js
不会代码的小猴2 小时前
C++的第十一天笔记
java·前端·jvm