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>
相关推荐
前端snow22 分钟前
ai agent --- 多agent框架之图编排引擎-langgraph
前端
竹林81825 分钟前
OmniPic Studio v3.2.1 核心技术架构与全平台发版解析文档
前端·浏览器
JamesZhang8007825 分钟前
页面内存只涨不跌? 一次泄漏排查, 牵出 WeakMap 的诞生
前端
Z小明29 分钟前
第 6 章 组件进阶
前端·vue.js
江华森31 分钟前
HTTP请求的完整过程详解:从DNS解析到TCP挥手的微秒级实战分析
前端
南青32 分钟前
Vue 3 中后台实战:我踩过的 10 个坑和最佳实践
前端
江华森34 分钟前
HTTPS协议详解——SSL/TLS握手、证书与加密通信
前端
江华森40 分钟前
从一个HTTP请求看网络分层原理:基于华为云ECS的真实抓包实战
前端
江华森41 分钟前
TCP协议详解——三次握手、四次挥手与连接状态
前端
甲维斯1 小时前
《钢铁洪流》官网搞定,纯AI制作,Opus5操刀!
前端·人工智能·游戏开发