前端组件库 ——WeUI 知识点大全(三)

简介: 教程来源 http://htnus.cn WeUI全面支持iOS 13+暗色模式,基于CSS自定义属性实现主题动态切换,提供系统跟随、手动控制及小程序适配方案,并支持品牌色定制与性能优化。

四、暗色模式适配

随着 iOS 13 引入暗色模式,微信也全面支持了暗色主题。WeUI 提供了完善的暗色模式适配方案。

4.1 暗色模式原理
WeUI 使用 CSS 自定义属性(CSS Variables)来实现动态主题切换。明色主题和暗色主题分别定义了一套颜色变量:

/* 明色主题变量 */
:root,
page {
    --weui-BRAND: #07C160;
    --weui-RED: #FA5151;
    --weui-BG-0: #EDEDED;
    --weui-BG-1: #F7F7F7;
    --weui-BG-2: #FFFFFF;
    --weui-FG-0: rgba(0, 0, 0, .9);
    --weui-FG-1: rgba(0, 0, 0, .5);
    --weui-FG-2: rgba(0, 0, 0, .3);
}

/* 暗色主题变量 */
[data-weui-theme='dark'] {
    --weui-BRAND: #07C160;
    --weui-RED: #FA5151;
    --weui-BG-0: #111111;
    --weui-BG-1: #1E1E1E;
    --weui-BG-2: #191919;
    --weui-FG-0: rgba(255, 255, 255, .8);
    --weui-FG-1: rgba(255, 255, 255, .5);
    --weui-FG-2: rgba(255, 255, 255, .3);
}

4.2 启用暗色模式
方式一:跟随系统

在页面根元素上不设置特定的 data-weui-theme 属性,WeUI 会自动检测系统主题设置。

方式二:手动控制

通过 JavaScript 动态设置主题:

// 切换为暗色主题
document.documentElement.setAttribute('data-weui-theme', 'dark');

// 切换为明色主题
document.documentElement.setAttribute('data-weui-theme', 'light');

// 跟随系统
document.documentElement.removeAttribute('data-weui-theme');

// 切换函数
function toggleTheme() {
    const isDark = document.documentElement.getAttribute('data-weui-theme') === 'dark';
    if (isDark) {
        document.documentElement.setAttribute('data-weui-theme', 'light');
    } else {
        document.documentElement.setAttribute('data-weui-theme', 'dark');
    }
}

方式三:在小程序中启用

// app.json
{
    "darkmode": true,
    "themeLocation": "theme.json"
}

4.3 自定义暗色主题
如果需要定制暗色主题的品牌色,可以覆盖相应的 CSS 变量:

/* 自定义主题 */
:root {
    --weui-BRAND: #0052D9;  /* 品牌色 */
}

[data-weui-theme='dark'] {
    --weui-BRAND: #4582E6;  /* 暗色模式下的品牌色 */
    --weui-BG-0: #000000;
    --weui-BG-1: #1A1A1A;
    --weui-BG-2: #242424;
}

五、性能优化与最佳实践

5.1 按需引入
WeUI 全量引入的 CSS 文件可能超过 100KB,对于小程序或移动端 Web 应用,按需引入可以显著减小包体积。

按需引入的关键原则:

只引入实际使用的组件样式:不要全量导入 weui.css,而是只导入需要的组件样式

注意组件依赖:某些组件(如对话框)可能依赖按钮、遮罩等子组件样式,需要一并引入

使用构建工具优化:利用 Webpack 等工具的 Tree Shaking 功能自动移除未使用的 CSS

CSS 按需引入示例:

/* 只引入按钮和对话框组件 */
@import 'weui/packages/weui-button/weui-button.css';
@import 'weui/packages/weui-dialog/weui-dialog.css';

5.2 小程序扩展库优化
在小程序中使用 useExtendedLib 方式引入 WeUI 是最优方案:

{
    "useExtendedLib": {
        "weui": true
    }
}

image.png
5.3 CSS 动画性能优化
WeUI 的动画效果(如 Toast 淡入淡出、Dialog 弹出)使用了 CSS3 过渡和变换,这些属性可以利用 GPU 加速:

/* 使用 transform 代替 left/top 实现动画 */
.weui-dialog {
    transform: translateY(-50%) scale(0.9);
    transition: transform 0.3s ease;
}

.weui-dialog.weui-dialog_show {
    transform: translateY(-50%) scale(1);
}

5.4 图片资源优化
WeUI 中的图标建议使用以下方式优化:

使用字体图标:WeUI 内置了图标字体,避免图片请求

图标合并:多个图标合并为雪碧图,减少 HTTP 请求

懒加载:对于非首屏图片,使用懒加载技术

使用 SVG:对于需要高清显示的图标,使用 SVG 格式

5.5 移动端触摸优化

/* 增大触摸区域 */
.weui-btn {
    min-height: 44px;  /* 移动端最小触摸区域 */
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* 禁用点击高亮 */
* {
    -webkit-tap-highlight-color: rgba(0,0,0,0);
}

/* 滚动优化 */
.weui-scroll-view {
    -webkit-overflow-scrolling: touch;
}

来源:
http://unbgv.cn

相关文章
|
19天前
|
人工智能 前端开发 JavaScript
前端组件库——shadcn/ui知识点大全(三)
教程来源 http://lemci.cn/ shadcn/ui通过Tree Shaking、动态导入、Tailwind JIT等实现极致性能优化,Bundle仅增20–50KB;组件即代码,完全可控、可定制、易维护,契合Next.js+Tailwind现代栈与AI协作开发。
|
10天前
|
存储 数据采集 分布式计算
数据仓库是什么?数据仓库和大数据平台、数据湖、数据中台、湖仓一体有什么区别?
本文厘清数据仓库、大数据平台、数据湖、数据中台、湖仓一体五大核心概念的本质区别与适用场景,破除术语混淆误区。从架构定位、数据类型、建模方式、技术演进到典型优劣,逐一剖析,助你精准选型、科学设计、自信汇报。
|
15天前
|
人工智能 JSON 决策智能
AI Agent 深潜:六大核心模块的设计本质与 Java 实现
AI Agent不是大模型API的简单封装,而是具备自主决策、闭环执行与迭代优化能力的完整智能系统。其核心由六大协同模块构成:规划(任务调度中枢)、记忆(经验沉淀载体)、工具使用(外部交互触手)、行动(落地执行手脚)、反思(自我迭代大脑)和多智能体协作(团队协同体系),共同支撑复杂任务的端到端可靠执行。
220 4
|
17天前
|
消息中间件 负载均衡 API
【微服务】微服务通信模式:同步(REST/gRPC)、异步(消息队列)
本文系统梳理微服务通信全体系:涵盖同步(REST/gRPC)与异步(消息队列)两大范式,深入解析原理、选型对比、治理实践及演进趋势,助你构建高可靠、松耦合、可观测的分布式通信架构。
|
18天前
|
数据采集 自然语言处理 安全
《ClawHub深度实测:10个能让你电脑自己打工的神级技能》
本文纠正了将QClaw等同于普通聊天机器人的普遍误区,指出其核心价值在于可无限拓展的技能生态系统。作者耗时三个月全面实测ClawHub上两百余个热门技能,经过至少两周日常使用验证,最终筛选出10个真正能改变工作方式的实用技能,覆盖安全防护、信息获取、文件管理、办公自动化、开发协作、个人理财与知识管理等全场景。文章结合真实使用体验,详细介绍了每个技能的核心功能与实际效果,没有华而不实的噱头,旨在帮助读者从繁琐的重复劳动中解放出来,大幅提升工作与生活效率。
229 2
|
2月前
|
存储 机器学习/深度学习 编解码
阿里云199元云服务器:2核4G+5M带宽+80G云盘,新购续费同价,初创企业首选
对于预算有限的初创团队及中小企业,阿里云推出的通用算力型u1实例199元云服务器特惠活动极具吸引力。该服务器配置为2核4G内存、5M带宽、80G ESSD Entry云盘,年费仅需199元,且新购与续费同价,活动长期有效至2027年。该服务器采用Intel ® Xeon ® Platinum处理器,性能稳定,适用于Web应用、企业办公、数据分析等多种场景,以极致性价比助力企业轻松上云,实现长期成本的确定性与可控性。
252 10
|
1月前
|
SQL 缓存 NoSQL
MyBatis-Plus 大表分页 count () 性能瓶颈深度解析
本文深入剖析MyBatis-Plus大表分页中count()性能瓶颈的根源,从源码解析其默认子查询机制,结合千万级订单表实战案例,提出5大可落地优化方案:自定义count语句、覆盖索引优化、Redis缓存估算、ES替代及读写分离等,助你将count耗时从数秒降至毫秒级。
232 4
|
2月前
|
缓存 供应链 架构师
数据架构是什么?一文讲清数据架构和技术架构的区别
本文系统解析企业数字化核心框架——“4A架构”(业务、数据、应用、技术架构),阐明其严格递进的逻辑链:业务架构定方向(做什么)、数据架构转语言(数据化表达)、应用架构落功能(系统实现)、技术架构保运行(稳定支撑)。破除“重技术轻业务”误区,助企业构建贴合实际、可演进的数字化架构体系。
数据架构是什么?一文讲清数据架构和技术架构的区别
|
1月前
|
数据库 对象存储
2026年 | 4月云大使推广奖励规则
云大使推广返利活动,新增后付费产品返利最高返利45%。企业新用户下单返佣加码5%。新老用户都可参与返利活动。
|
16小时前
|
人工智能 Shell API
Claude Code 企业落地观察:近两天更新暴露的 MCP、代理、权限和模型网关问题
Claude Code 在 2026 年 5 月 8 日至 5 月 9 日连续更新,修复了 MCP OAuth、VS Code、Plan mode、代理链路和 Windows/WSL 体验问题。对企业团队来说,重点不是安装,而是治理。
32 1

热门文章

最新文章