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>
相关推荐
pas1366 分钟前
31-mini-vue 更新element的children
前端·javascript·vue.js
wordbaby10 分钟前
TanStack Router 实战:如何构建经典的“左侧菜单 + 右侧内容”后台布局
前端·react.js
oMcLin25 分钟前
如何在 RHEL 7 上优化 Nginx 与 PHP‑FPM 配置,确保高并发 Web 应用的稳定性与响应速度?
前端·nginx·php
Taiyuuki38 分钟前
WebGPU 开发者福音!在 VS Code 中实时预览你的WGSL着色器作品
前端·gpu·图形学
李剑一1 小时前
uni-app实现网络离线定位
前端·trae
鲨莎分不晴1 小时前
Nginx 部署前端项目实战指南
运维·前端·nginx
码界奇点1 小时前
基于Vue3与TypeScript的后台管理系统设计与实现
前端·javascript·typescript·vue·毕业设计·源代码管理
计算机程序设计小李同学1 小时前
婚纱摄影集成管理系统小程序
java·vue.js·spring boot·后端·微信小程序·小程序
ashcn20011 小时前
水滴按钮解析
前端·javascript·css
攀登的牵牛花1 小时前
前端向架构突围系列 - 框架设计(五):契约继承原则
前端·架构