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

简介: 教程来源 http://vbzcj.cn/ WeUI是微信官方UI库,提供按钮、输入框、列表等表单组件,图标、Flex布局等基础组件,以及对话框、Toast等反馈组件和导航组件,并全面支持暗色模式,通过CSS变量实现主题动态切换。

三、核心组件详解

3.1 表单类组件
表单是用户与应用交互的核心,WeUI提供了完整的表单组件体系。

3.1.1 按钮组件
按钮是WeUI中最基础的交互元素,提供了多种视觉变体:

<!-- 主要操作按钮(绿色) -->
<button class="weui-btn weui-btn_primary">主要按钮</button>

<!-- 次要操作按钮(灰色) -->
<button class="weui-btn weui-btn_default">默认按钮</button>

<!-- 警示操作按钮(红色) -->
<button class="weui-btn weui-btn_warn">警告按钮</button>

<!-- 小尺寸按钮 -->
<button class="weui-btn weui-btn_primary weui-btn_mini">小按钮</button>

<!-- 禁用按钮 -->
<button class="weui-btn weui-btn_primary weui-btn_disabled">禁用按钮</button>

<!-- 加载中按钮 -->
<button class="weui-btn weui-btn_primary weui-btn_loading">
    <i class="weui-loading"></i> 加载中
</button>

按钮状态说明:

主要按钮(绿色):用于页面的主要操作,如“提交”、“确认”

默认按钮(灰色):用于次要操作,如“取消”、“返回”

警示按钮(红色):用于危险操作,如“删除”、“注销”

3.1.2 输入框组件
输入框是表单中的核心元素,WeUI提供了多种输入框样式:

<!-- 标准输入框 -->
<div class="weui-cell">
    <div class="weui-cell__hd">
        <label class="weui-label">用户名</label>
    </div>
    <div class="weui-cell__bd">
        <input class="weui-input" type="text" placeholder="请输入用户名">
    </div>
</div>

<!-- 带验证状态的输入框 -->
<div class="weui-cell weui-cell_warn">
    <div class="weui-cell__hd">
        <label class="weui-label">手机号</label>
    </div>
    <div class="weui-cell__bd">
        <input class="weui-input" type="tel" placeholder="请输入手机号">
    </div>
    <div class="weui-cell__ft">
        <i class="weui-icon-warn"></i>
    </div>
</div>

<!-- 文本域 -->
<div class="weui-cell">
    <div class="weui-cell__bd">
        <textarea class="weui-textarea" placeholder="请输入详细描述" rows="3"></textarea>
        <div class="weui-textarea-counter">0/200</div>
    </div>
</div>

输入框结构说明:

weui-cell:表单项容器

weui-cell__hd:标签区域

weui-label:标签文本

weui-cell__bd:输入区域

weui-input:输入框样式

weui-cell__ft:右侧附加区域(图标、提示等)

weui-cell_warn:警告状态的样式修饰

3.1.3 列表表单
列表表单用于展示多个表单项的组合

<div class="weui-cells weui-cells_form">
    <div class="weui-cell">
        <div class="weui-cell__hd">
            <label class="weui-label">姓名</label>
        </div>
        <div class="weui-cell__bd">
            <input class="weui-input" type="text" placeholder="请输入姓名">
        </div>
    </div>
    <div class="weui-cell">
        <div class="weui-cell__hd">
            <label class="weui-label">邮箱</label>
        </div>
        <div class="weui-cell__bd">
            <input class="weui-input" type="email" placeholder="请输入邮箱">
        </div>
    </div>
</div>

3.1.4 选择器

<!-- 单选框组 -->
<div class="weui-cells weui-cells_radio">
    <label class="weui-cell weui-check__label" for="radio1">
        <div class="weui-cell__bd">
            <p>选项一</p>
        </div>
        <div class="weui-cell__ft">
            <input type="radio" class="weui-check" name="radio" id="radio1" checked>
            <span class="weui-icon-checked"></span>
        </div>
    </label>
</div>

<!-- 复选框组 -->
<div class="weui-cells weui-cells_checkbox">
    <label class="weui-cell weui-check__label" for="checkbox1">
        <div class="weui-cell__hd">
            <input type="checkbox" class="weui-check" id="checkbox1">
            <i class="weui-icon-checked"></i>
        </div>
        <div class="weui-cell__bd">
            <p>选项一</p>
        </div>
    </label>
</div>

<!-- 开关 -->
<div class="weui-cell weui-cell_switch">
    <div class="weui-cell__bd">接收通知</div>
    <div class="weui-cell__ft">
        <input class="weui-switch" type="checkbox">
    </div>
</div>

3.2 基础组件
3.2.1 图标组件
WeUI内置了丰富的图标,覆盖了常见的状态和操作场景:

<!-- 成功图标 -->
<i class="weui-icon-success"></i>

<!-- 提示图标 -->
<i class="weui-icon-info"></i>

<!-- 警告图标 -->
<i class="weui-icon-warn"></i>

<!-- 等待图标 -->
<i class="weui-icon-waiting"></i>

<!-- 安全提示图标 -->
<i class="weui-icon-safe"></i>

<!-- 信息图标 -->
<i class="weui-icon-info-circle"></i>

<!-- 取消/关闭图标 -->
<i class="weui-icon-cancel"></i>

<!-- 搜索图标 -->
<i class="weui-icon-search"></i>

<!-- 清除图标 -->
<i class="weui-icon-clear"></i>

图标使用场景:

weui-icon-success:操作成功提示

weui-icon-warn:警告或错误提示

weui-icon-info:普通信息提示

weui-icon-waiting:等待状态提示

3.2.2 Flex布局
WeUI提供了基于Flexbox的布局工具类:

<!-- 水平布局 -->
<div class="weui-flex">
    <div class="weui-flex__item">弹性项目1</div>
    <div class="weui-flex__item">弹性项目2</div>
</div>

<!-- 垂直布局 -->
<div class="weui-flex weui-flex_column">
    <div>项目1</div>
    <div>项目2</div>
</div>

<!-- 两端对齐 -->
<div class="weui-flex weui-flex_justify-between">
    <div>左</div>
    <div>右</div>
</div>

3.3 操作反馈组件
3.3.1 对话框(Dialog)
对话框用于需要用户确认的重要操作:

<div class="weui-dialog" id="dialog">
    <div class="weui-dialog__hd">
        <strong class="weui-dialog__title">提示</strong>
    </div>
    <div class="weui-dialog__bd">
        确定要执行此操作吗?
    </div>
    <div class="weui-dialog__ft">
        <a href="javascript:;" class="weui-dialog__btn weui-dialog__btn_default">取消</a>
        <a href="javascript:;" class="weui-dialog__btn weui-dialog__btn_primary">确定</a>
    </div>
</div>

3.3.2 提示框(Toast)
提示框用于显示轻量级的操作反馈:

<!-- 成功提示 -->
<div class="weui-toast">
    <i class="weui-icon-success-no-circle weui-icon_toast"></i>
    <p class="weui-toast__content">已完成</p>
</div>

<!-- 加载提示 -->
<div class="weui-toast">
    <i class="weui-loading weui-icon_toast"></i>
    <p class="weui-toast__content">加载中</p>
</div>

<!-- 文字提示 -->
<div class="weui-toast">
    <p class="weui-toast__content">仅文字提示</p>
</div>

3.3.3 操作表(ActionSheet)
操作表从底部弹出,提供多个操作选项:

<div class="weui-actionsheet" id="actionSheet">
    <div class="weui-actionsheet__title">
        <p class="weui-actionsheet__title-text">请选择操作</p>
    </div>
    <div class="weui-actionsheet__menu">
        <div class="weui-actionsheet__cell">选项一</div>
        <div class="weui-actionsheet__cell">选项二</div>
        <div class="weui-actionsheet__cell">选项三</div>
    </div>
    <div class="weui-actionsheet__action">
        <div class="weui-actionsheet__cell">取消</div>
    </div>
</div>

3.4 导航组件
3.4.1 顶部导航栏

<div class="weui-navbar">
    <div class="weui-navbar__item weui-bar__item_on">
        选项一
    </div>
    <div class="weui-navbar__item">
        选项二
    </div>
    <div class="weui-navbar__item">
        选项三
    </div>
</div>

3.4.2 底部标签栏

<div class="weui-tabbar">
    <a href="#" class="weui-tabbar__item weui-bar__item_on">
        <div class="weui-tabbar__icon">
            <img src="./images/icon_home.png" alt="">
        </div>
        <p class="weui-tabbar__label">首页</p>
    </a>
    <a href="#" class="weui-tabbar__item">
        <div class="weui-tabbar__icon">
            <img src="./images/icon_my.png" alt="">
        </div>
        <p class="weui-tabbar__label">我的</p>
    </a>
</div>

3.5 其他常用组件
3.5.1 列表(Cells)
列表是WeUI中最常用的数据展示组件:

<div class="weui-cells">
    <div class="weui-cell">
        <div class="weui-cell__bd">
            <p>列表项1</p>
        </div>
        <div class="weui-cell__ft">
            详细信息
        </div>
    </div>
    <div class="weui-cell weui-cell_access">
        <div class="weui-cell__bd">
            <p>可点击列表项</p>
        </div>
        <div class="weui-cell__ft weui-cell__ft_in-access">
        </div>
    </div>
</div>

3.5.2 卡片(Panel)
卡片用于组合展示相关内容:

<div class="weui-panel">
    <div class="weui-panel__hd">面板标题</div>
    <div class="weui-panel__bd">
        <div class="weui-media-box weui-media-box_text">
            <h4 class="weui-media-box__title">标题</h4>
            <p class="weui-media-box__desc">描述内容</p>
        </div>
    </div>
    <div class="weui-panel__ft">
        <a href="#" class="weui-cell weui-cell_access weui-cell_link">
            <div class="weui-cell__bd">查看更多</div>
            <span class="weui-cell__ft"></span>
        </a>
    </div>
</div>

3.5.3 搜索栏

<div class="weui-search-bar">
    <form class="weui-search-bar__form">
        <div class="weui-search-bar__box">
            <i class="weui-icon-search"></i>
            <input type="search" class="weui-search-bar__input" placeholder="搜索">
            <a href="javascript:" class="weui-icon-clear"></a>
        </div>
        <label class="weui-search-bar__label">
            <i class="weui-icon-search"></i>
            <span>搜索</span>
        </label>
    </form>
    <a href="javascript:" class="weui-search-bar__cancel-btn">取消</a>
</div>

四、暗色模式适配

随着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');

方式三:在小程序中启用

// 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;
}

来源:
http://vbzcj.cn/

相关文章
|
4月前
|
前端开发 JavaScript API
前端组件库——Naive UI知识点大全(四)
教程来源 https://tmywi.cn/category/jiaju.html 本文档汇总Naive UI开发中高频问题与最佳实践:涵盖动态表单校验失效、Select复杂对象绑定、表格row-key响应、暗黑模式刷新及离散API调用等解决方案,并提供项目结构、组件封装、表格逻辑复用和组件注册等工程化建议,助力高效构建高质量Vue 3应用。
|
4月前
|
前端开发 开发者
前端组件库——Naive UI知识点大全(三)
教程来源 https://tmywi.cn/category/jiankang.html Naive UI通过Tree Shaking、自动按需导入(unplugin-auto-import)及Webpack插件实现高效体积优化,实测显著减小打包体积;响应式方面聚焦组件级适配,支持媒体查询、useWindowSize动态切换布局(如表格→卡片),并提供移动端尺寸、间距、弹窗等适配建议。
|
4月前
|
前端开发 JavaScript 安全
前端组件库——Naive UI知识点大全(二)
教程来源 https://hllft.cn/category/tech-trends.html Naive UI是专为Vue 3打造的高质量开源组件库,提供90+开箱即用组件。本文详解中后台核心组件:NButton(多态/状态/尺寸灵活)、NDataTable(虚拟滚动+固定列)、NForm(声明式验证)、Message/Dialog/Notification反馈体系,以及NGrid/NSpace布局方案,并深入解析其TypeScript驱动、零CSS变量的主题定制与暗黑模式支持。
|
4月前
|
数据采集 机器学习/深度学习 人工智能
Python+AI实战:从零构建智能图像识别系统(一)
教程来源 https://yyvgt.cn/category/jiulishi.html 本文详解如何用Python从零构建生产级智能商品分类系统,涵盖数据采集、增强、模型训练(ResNet/EfficientNet/ViT)、优化、ONNX/TensorRT部署、FastAPI服务、A/B测试与持续学习全链路,直面真实AI落地挑战。
|
4月前
|
JavaScript 前端开发 安全
前端组件库——Naive UI知识点大全(一)
教程来源 https://hllft.cn/category/artificial-intelligence.html Naive UI是Vue 3 + TypeScript现代化UI库,由图森未来开源。主打轻量、高性能、零CSS导入、全组件Tree Shaking及类型安全主题系统,已获GitHub 1.5w+ Star,适合追求开发体验与性能的中后台项目。
|
移动开发 开发框架 小程序
|
3月前
|
移动开发 前端开发 小程序
前端组件库 ——WeUI 知识点大全(二)
教程来源 http://oieaw.cn WeUI是微信官方UI库,提供按钮、输入框、列表等表单组件,图标、Flex/网格等基础组件,Dialog/Toast/ActionSheet等反馈组件,以及导航、数据展示和搜索组件,全面支持微信小程序与H5页面开发。
|
4月前
|
弹性计算 安全 搜索推荐
企业用户注册阿里云账号流程:所需资料、注册及实名步骤及注意事项
企业用户注册阿里云账号需先完成企业实名认证,享受更高购买限额、专属优惠及技术支持。认证需准备营业执照、法人身份证等资料,通过支付宝、银行卡或扫脸等方式完成。注册流程包括访问官网、选择注册方式、完成注册、进行企业实名认证及绑定支付方式。注意事项包括确保信息一致、资料真实有效、关注时效性,并妥善保管账号信息。完成认证后,企业用户可领取专享代金券,享受性价比更高的云服务配置。
|
7月前
|
安全 数据安全/隐私保护
2026阿里云账号注册流程(以企业用户为例)注册材料、实名认证、企业上云补贴及问题解答FAQ
企业用户注册阿里云账号仅需手机号,注册后须完成实名认证方可使用。本文详解2026年最新企业账号注册、支付宝扫码快速认证流程及常见问题,助力企业高效上云,享最高百万出海补贴。
711 9
|
8月前
|
移动开发 小程序 前端开发
多端陪玩系统搭建:uni-app+PHP 对接阿里云服务(小程序 / 公众号 / APP)
基于uni-app与阿里云的多端陪玩系统,集成OSS、短信、直播RTS及支付功能。通过STS临时凭证、Redis防刷、JWT鉴权保障安全,支持小程序、H5、APP多端适配,实现低延迟音视频通话与高并发稳定运行,助力高效运营。(239字)
437 0

热门文章

最新文章