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>
相关推荐
马玉霞5 分钟前
vue3很丝滑的table表格向上滚动效果,多用于统计页面
前端·vue.js
用户952081611795 分钟前
百度地图JSAPI THREE Label 组件使用指南,轻松实现地图标签渲染
前端
SVIP1115910 分钟前
webpack入门 精细版
前端·webpack·node.js
畅畅畅哥哥10 分钟前
Next.js App Router 实战避坑:状态、缓存与测试
前端·前端框架
一水鉴天12 分钟前
整体设计 定稿 之20 拼语言表述体系之3 dashboard.html完整代码
java·前端·javascript
一颗烂土豆12 分钟前
React 大屏可视化适配方案:vfit-react 发布 🚀
前端·javascript·react.js
Qinana12 分钟前
构建一个融合前端、模拟后端与大模型服务的全栈 AI 应用
前端·后端·程序员
加洛斯14 分钟前
箭头函数的艺术:如何优雅的写好JS代码
前端·javascript
克喵的水银蛇16 分钟前
Flutter 自定义 Widget 实战:封装通用按钮 + 下拉刷新列表
前端·javascript·flutter
Li_na_na0116 分钟前
React+dhtmlx实现甘特图
前端·react.js·甘特图