p***@163.com
p***@163.com
  • 发布:2023-07-28 16:26
  • 更新:2023-07-28 17:01
  • 阅读:260

【报Bug】多次加载uni.scss

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: win10

HBuilderX类型: 正式

HBuilderX版本号: 3.8.11

手机系统: Android

手机系统版本号: Android 12

手机厂商: 一加

手机机型: 一加8

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

在多个组件的style使用 lang="scss"属性,一个页面上引入多个组件。

预期结果:

只加载一次根目录下的uni.scss

实际结果:

多次加载根目录下的uni.scss

bug描述:

组件里的样式使用scss编写的时候,导入这样的组件会加载根目录下的uni.scss文件样式。如果一个页面有多个scss样式的组件会加载多次uni.scss文件样式。App和H5都会这样,建议优化加载。

2023-07-28 16:26 负责人:无 分享
已邀请:
爱豆豆

爱豆豆 - 办法总比困难多

不对啊 uni.scss 本身就是全局样式 你是不是在组件内引入uni.scss这个文件了
能发一下个demo吗

陈海宏5258

陈海宏5258 - 我是人。

这是正常的,

因为 uni.scss 里面基本上放的是全局通用的变量、函数什么的,所以每个组件的style(lang=scss)都要引入它。
如果不引入uni.scss,编译组件样式肯定报错,如找不到变量、找不到函数之类的错误。

如果你是有一些全局的样式,你可以放在app.vue里引入,这样就不会造成每个组件都会有一份拷贝。
但是把uniapp编译成小程序的话,全局样式可能对组件不生效。

  • p***@163.com (作者)

    我是想在组件里使用scss变量,我是期望只加载一次uni.scss样式,而不是页面有多少个scss编写的组件就加载多少个uni.scss,冗余加载了

    2023-07-29 00:37

  • 陈海宏5258

    回复 p***@163.com: 每个组件的style(lang=scss)都是独立转成css的。不引入uni.scss的话,如果使用到uni.scss里的变量或其他内容是会报错的。

    2023-07-29 18:47

要回复问题请先登录注册