当前位置: 首页 > article >正文

uniapp中uni.scss如何引入页面内或生效

介绍

uniapp中uni.scss不需要引用自动会生效,前提是安装了scss.

解决方法

在 UniApp 项目中,如果需要在页面的 SCSS 中使用 uni.scss 定义的变量,需要确保全局变量文件 uni.scss 被正确加载。

步骤:

1. 确保变量定义正确

首先检查 uni.scss 文件中的变量是否正确定义,并且没有语法错误:

// uni.scss
$uv-theme-purple: #936AFF;
$uv-theme-gray: #EEEFF4;
$uv-theme-brown: #714509;
$uv-theme-silver: #9FA2B3;
$uv-theme-bg: #F6F7F9;

2. uni.scss 中定义全局变量

uni.scss 是 UniApp 项目的全局样式文件。为了使这些变量在其他页面中生效,你需要正确引入 uni.scss

全局引入 uni.scss

pages.json 文件中配置全局样式文件:

{
  "globalStyle": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "UniApp",
    "navigationBarBackgroundColor": "#FFFFFF",
    "backgroundColor": "#F8F8F8",
    "style": "v3",
    "scss": {
      "preprocessorOptions": {
        "additionalData": "@import '@/uni.scss';"
      }
    }
  }
}

或者在 main.js 中手动引入:

import '@/uni.scss';

3. 检查 SCSS 文件是否使用了局部作用域

如果你在 Vue 单文件组件的 <style lang="scss"> 标签中使用了 scoped,可能导致变量无法被解析。

<style lang="scss" scoped>
.home-container {
  color: $uv-theme-silver; // scoped 可能导致无法识别全局变量
}
</style>

解决方法:
移除 scoped,或者在全局样式文件中定义样式。

<style lang="scss">
.home-container {
  color: $uv-theme-silver;
}
</style>

4. 使用 @import 引入变量文件

如果全局变量依然无法识别,你可以在需要使用这些变量的文件中手动引入 uni.scss

@import '@/uni.scss';

.home-container {
  color: $uv-theme-silver;
}

注意:路径 @/uni.scss 需要根据项目目录结构调整。


5. 检查依赖版本和兼容性

确保项目中安装了 SCSS 相关依赖:

npm install sass sass-loader -D

检查 vite.config.js 是否配置了正确的预处理器选项:

import { defineConfig } from 'vite';
import uni from '@dcloudio/vite-plugin-uni';

export default defineConfig({
  plugins: [uni()],
  css: {
    preprocessorOptions: {
      scss: {
        additionalData: `@import "@/uni.scss";`, // 全局引入
      },
    },
  },
});

6. 重启开发服务器

每次修改全局样式配置后,建议重新启动开发服务器:

npm run dev

总结

配置自定义SCSS 变量未生效,错误可能是因为 SCSS 变量未正确加载为全局变量。如果上述方式都不行,且你在uniapp中下载scss插件并安装,建议项目关闭后重新启动即可生效,不需要额外引入和配置。


http://www.kler.cn/a/451639.html

相关文章:

  • USDZ格式轻松转OBJ
  • 小程序租赁系统开发指南与实现策略
  • 【Linux】ChatGLM-4-9B模型之All Tools
  • day14-16系统服务管理和ntp和防火墙
  • Python选择题训练工具:高效学习、答题回顾与音频朗读一站式体验
  • Mac Android studio 升级LadyBug 版本,所产生的bug
  • 【深度学习数学知识】-贝叶斯公式
  • RabbitMQ 路由(Routing)通讯方式详解
  • 金融领域研发效能的特性有哪些?拓展边界是什么?
  • 内网穿透ubuntu20 docker coplar
  • 14_HTML5 input类型 --[HTML5 API 学习之旅]
  • Centos7 安装 zip 软件失败,更换yum 源方法
  • 麒麟信安参展南京软博会,支持信创PC的新一代云桌面及全行业解决方案备受瞩目
  • 一文了解Oracle数据库如何连接(1)
  • Linux复习4——shell与文本处理
  • 基于C#实现的(WinForm)模拟操作系统文件管理系统
  • 基于STM32 USB接口的温度控制器设计
  • 基于SpringBoot在线音乐系统平台功能实现十二
  • 【华为OD-E卷-狼羊过河 100分(python、java、c++、js、c)】
  • 2002 - Can‘t connect to server on ‘192.168.1.XX‘ (36)
  • 母婴用品系统|Java|SSM|JSP|
  • Text2Reward学习笔记
  • 消息队列(二)消息队列的高可用原理
  • 面试场景题系列:设计一致性哈希系统
  • vue实现2048小游戏
  • DP83848以太网移植流程,可以TCP通信