首页 技术 正文
技术 2022年11月17日
0 收藏 970 点赞 4,568 浏览 829 个字

通常项目中src下的子目录都会有一个style文件夹,专门用来存放全局的样式文件。

这个style文件夹下,一般有reset.css、var.scss、mixin.scss、class.scss、index.scss

一般都会在index.scss文件中引入其他文件做统一管理,并在main.js中引入index.scss

我们在开发vue文件时,通常会用到全局样式文件,尤其是mixin.scss。

经常在vue文件中会出现,直接引入index.scss的情况

<style lang="scss" scoped>
@import "~@/styles/index.scss";
.wrap{
@include clearfix;
}
</style>

虽然可以达到期望的效果。但是这样引入会带来一个副作用。

假如有两个vue文件都是这样引入的,你在审查元素的时候会发现,同一个class样式声明了两次。

比如A.vue和B.vue都引入了index.scss并都用到了class="red",index.scss引入的class.scss中定义了一个样式 .red{color:red}

那么,当你审查该元素的时候会发现,这个.red在页面上被定义了两次。

.red{color:red}这样的内容会被单独打包进于该vue文件中(如果使用了css-extract-plugin,同样打包进与该vue对应的css文件中)。

所以组件加载完,样式也会被添加到页面中。

如果每个页面都直接引入了index.scss。无形中会给浏览器造成很大的负担(因为样式树的生成、样式树与文档树结合的效率很低)。

那如何避免呢?

正确的姿势是:

只引入 @import "~@/styles/mixin.scss"@import "~@/styles/var.scss"

他们只会将 vue文件中 @include clearfix 直接替换为

&:after {
content: "";
display: table;
clear: both;
}
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,088
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,564
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,412
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,185
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,822
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,905