前端组件库——Wot Design Uni知识点大全(二)

简介: 教程来源 http://unbgv.cn Wot Design Uni 是基于 Vue3+TS 的跨平台 uni-app 组件库,提供 70+ 高质量组件。涵盖按钮、单元格、表单(支持链式校验)、弹窗、Toast、虚拟列表及带徽标的 Tabs 等,全面适配小程序/H5/APP,支持暗黑模式与国际化。

三、核心组件体系

Wot Design Uni提供了70+个组件,覆盖了移动端开发的绝大部分场景。以下是最常用的核心组件分类。

3.1 基础组件
3.1.1 Button按钮组件
Button是用户交互中最基础的组件,Wot Design Uni提供了丰富的样式和状态。

<template>
  <!-- 按钮类型 -->
  <wd-button type="primary">主要按钮</wd-button>
  <wd-button type="success">成功按钮</wd-button>
  <wd-button type="error">错误按钮</wd-button>
  <wd-button type="warning">警告按钮</wd-button>
  <wd-button type="info">信息按钮</wd-button>
  <wd-button type="default">默认按钮</wd-button>

  <!-- 按钮尺寸 -->
  <wd-button size="large">大号按钮</wd-button>
  <wd-button size="medium">中等按钮</wd-button>
  <wd-button size="small">小型按钮</wd-button>
  <wd-button size="mini">迷你按钮</wd-button>

  <!-- 按钮状态 -->
  <wd-button disabled>禁用按钮</wd-button>
  <wd-button loading>加载按钮</wd-button>

  <!-- 块级按钮 -->
  <wd-button block>块级按钮</wd-button>

  <!-- 自定义样式 -->
  <wd-button custom-class="my-button">自定义按钮</wd-button>
</template>

Button组件核心属性说明:

type:定义按钮的视觉类型

size:控制按钮尺寸

disabled:使按钮不可交互

loading:显示加载动画

block:使按钮宽度占满父容器

3.1.2 Cell单元格组件
Cell是列表展示的基础组件,适用于信息展示和页面导航。

<template>
  <!-- 基础单元格 -->
  <wd-cell title="单元格标题" value="单元格内容" />

  <!-- 带图标的单元格 -->
  <wd-cell title="单元格" icon="location" />

  <!-- 带箭头的单元格(用于导航) -->
  <wd-cell title="单元格" is-link />

  <!-- 带描述的单元格 -->
  <wd-cell title="单元格" label="描述信息" value="内容" />

  <!-- 单元格组 -->
  <wd-cell-group>
    <wd-cell title="单元格1" value="内容1" />
    <wd-cell title="单元格2" value="内容2" />
  </wd-cell-group>

  <!-- 自定义内容 -->
  <wd-cell title="单元格" value="内容" is-link>
    <view class="custom-content">自定义内容</view>
  </wd-cell>
</template>

3.2 表单组件
3.2.1 Field输入框
Field是表单交互的核心组件,支持多种输入类型和验证功能。

<template>
  <!-- 基础输入框 -->
  <wd-field v-model="value" placeholder="请输入内容" />

  <!-- 带标签的输入框 -->
  <wd-field label="用户名" v-model="username" placeholder="请输入用户名" />

  <!-- 密码输入框 -->
  <wd-field 
    v-model="password" 
    label="密码" 
    type="password" 
    placeholder="请输入密码" 
  />

  <!-- 文本域 -->
  <wd-field 
    v-model="desc" 
    type="textarea" 
    rows="3" 
    placeholder="请输入描述" 
  />

  <!-- 带错误提示 -->
  <wd-field 
    v-model="phone" 
    label="手机号" 
    error-message="手机号格式不正确" 
  />
</template>

Field组件的校验功能:

支持内置校验规则(required、email、phone等)

支持自定义校验规则

支持链式校验,让表单验证更加灵活

3.2.2 Form链式校验
Wot Design Uni 1.14.0版本增强了Form表单的校验能力,支持链式校验:

<template>
  <wd-form :model="formData" :validate-trigger-chain="true">
    <!-- 手机号校验通过后才显示验证码字段 -->
    <wd-input 
      name="phone" 
      label="手机号" 
      v-model="formData.phone" 
      :rules="[{ required: true, message: '必填' }, 
               { pattern: /^1\d{10}$/, message: '格式错误' }]" 
    />
    <wd-input 
      name="code" 
      label="验证码" 
      v-model="formData.code" 
      :rules="[{ required: true, message: '必填' }]" 
      v-if="formData.phone.valid" 
    />
  </wd-form>
</template>

这种链式校验的设计让复杂的表单验证逻辑变得更加简洁优雅。

3.3 反馈组件
3.3.1 Dialog弹窗

<template>
  <wd-dialog title="提示" v-model="show" @confirm="onConfirm">
    <view>确定要执行此操作吗?</view>
  </wd-dialog>
</template>

3.3.2 Toast提示

import { useToast } from 'wot-design-uni'

// 显示纯文本提示
useToast({ message: '操作成功', type: 'success' })

// 显示加载提示
useToast({ message: '加载中...', type: 'loading', duration: 0 })

3.4 虚拟列表组件(1.14.0新增)
Wot Design Uni 1.14.0版本新增了虚拟列表组件wd-virtual-list,专门用于处理大数据量列表的渲染:

<template>
  <wd-virtual-list 
    :data="largeData" 
    :item-size="60" 
    @scroll="handleScroll"
  >
    <template #default="{ item }">
      <div class="item">{
  { item.id }}. {
  { item.content }}</div>
    </template>
  </wd-virtual-list>
</template>

<script setup>
import { ref } from 'vue'

const largeData = ref(
  Array.from({length: 10000}, (_, i) => ({ 
    id: i+1, 
    content: `列表项 ${i+1}` 
  }))
)
</script>

虚拟列表是处理大数据量列表的核心技术,通过只渲染可视区域内的元素,可以大幅降低DOM节点数量,显著提升滚动性能和内存效率。

3.5 Tabs组件徽标功能
Wot Design Uni的Tabs组件支持徽标(Badge)功能,用于向用户传达未读消息数量、新功能提示等重要信息。

徽标功能的使用方式:

<template>
  <!-- 基础小红点 -->
  <wd-tabs :tabs="tabs" badge />

  <!-- 数字徽标 -->
  <wd-tabs :tabs="tabs" badge="5" />

  <!-- 配置徽标样式 -->
  <wd-tabs 
    :tabs="tabs" 
    :badge="{ isDot: true, color: '#f00' }" 
  />
</template>

徽标配置选项:

isDot:是否显示为小红点

value:显示数值

max:数值最大值限制(如超过99显示"99+")

color:自定义背景色

3.6 其他常用组件
image.png

四、主题定制

Wot Design Uni提供了灵活的主题定制能力,通过CSS变量可以轻松修改组件的外观。

4.1 全局主题变量覆盖
开发者可以通过修改CSS变量来定制应用的整体主题风格:

// uni.scss 或 App.vue中的style

/* 主题色变量 */
:root {
  --wd-primary-color: #007bff;
  --wd-success-color: #28a745;
  --wd-warning-color: #ffc107;
  --wd-error-color: #dc3545;
  --wd-info-color: #17a2b8;

  /* 背景色变量 */
  --wd-bg-color: #ffffff;
  --wd-bg-color-secondary: #f5f5f5;

  /* 文字颜色变量 */
  --wd-text-color: #333333;
  --wd-text-color-secondary: #666666;

  /* 圆角变量 */
  --wd-border-radius: 8px;

  /* 字体大小变量 */
  --wd-font-size: 14px;
}
// 引入Wot Design Uni样式
@import 'wot-design-uni/styles/index.scss';

4.2 组件级样式定制
除了全局主题覆盖外,还可以针对单个组件进行样式定制:

<template>
  <wd-button custom-class="my-button" expose-css-var>
    自定义按钮
  </wd-button>
</template>

<style scoped>
.my-button {
  --wd-button-height: 50px;
  border-radius: 25px;
}
</style>

expose-css-var属性可以让组件暴露内部的CSS变量,方便进行样式覆盖。
4.3 暗黑模式支持
Wot Design Uni从早期版本就开始支持暗黑模式。通过设置data-theme属性,可以轻松切换暗黑主题:

<script setup>
import { ref } from 'vue'
import { useDarkMode } from 'wot-design-uni'

const { isDark, toggleDark } = useDarkMode()

// 在根元素切换类名
watch(isDark, (val) => {
  document.documentElement.classList.toggle('dark', val)
})
</script>

<style>
:root {
  --wd-primary-color: #0081ff;
}

.dark {
  --wd-bg-color: #1a1a1a;
  --wd-text-color: #e0e0e0;
}
</style>

Wot Design Uni的暗黑模式支持基于CSS变量实现,通过切换根元素的类名来切换不同的变量值,从而实现全局主题切换。
来源:
https://bncne.cn

相关文章
|
4月前
|
移动开发 JavaScript 前端开发
前端组件库——Wot Design Uni知识点大全(一)
教程来源 https://zlpow.cn Wot Design Uni 是基于 Vue3 + TypeScript 的开源 uni-app UI 组件库,提供 70+ 高质量移动端组件,支持微信/支付宝小程序、H5、App 等多端兼容,内置暗黑模式、国际化(15+语言)与 CSS 变量主题定制,大幅提升跨平台开发效率。
|
4月前
|
移动开发 自然语言处理 小程序
前端组件库——Wot Design Uni知识点大全(三)
教程来源 https://rvtst.cn Wot Design Uni 是基于 Vue3 的跨平台 UI 组件库,支持微信/支付宝小程序、H5、App 等多端兼容;提供样式隔离修复、virtualHost 渲染优化、虚拟列表、按需引入、国际化(15+语言)等完整解决方案。
|
4月前
|
机器学习/深度学习 人工智能 数据可视化
【AI加持】基于PyQt+YOLO+DeepSeek的口罩佩戴检测系统(详细介绍)
本文介绍了一个基于PyQt+YOLO+DeepSeek的口罩佩戴检测系统。该系统利用YOLOv8实现高效目标检测,结合PyQt5构建可视化界面,并集成DeepSeek模型进行智能分析。支持图片、视频、摄像头等多种数据源输入,可实时检测口罩佩戴情况。系统采用多线程技术保证流畅运行,并使用SQLite3进行数据存储管理。该方案有效解决了公共场所口罩佩戴监测难题,相比人工巡查显著提升了管理效率和准确性,为智慧城市建设和公共卫生安全管理提供了智能化解决方案。
419 34
【AI加持】基于PyQt+YOLO+DeepSeek的口罩佩戴检测系统(详细介绍)
|
3月前
|
XML 前端开发 程序员
初级程序员必备的十大技能之 API 接口与前后端联调(一)
教程来源 http://qeext.cn/ 本文系统讲解API设计规范(RESTful/GraphQL)、HTTP协议核心(方法、状态码、头信息)、前后端联调流程及调试工具,助你打造标准化、高可用接口,打破前后端协作孤岛。
|
4月前
|
编解码 人工智能 监控
阿里云百炼大模型HappyHorse介绍:功能与用途、适用场景与使用教程参考
阿里云百炼HappyHorse大模型服务平台,为用户提供文生视频、图生视频、参考生视频及视频编辑四大功能,支持高质量视频生成,适配广告、电商等多场景。该平台支持720P/1080P分辨率、3-15秒时长输出,具备有声支持、地域一致性校验及按秒计费(0.9元/秒起)等技术特性。用户可免费体验10秒视频生成,通过API配置实现智能创作,并遵循详细教程与地域化调用规范,高效完成视频生成与编辑工作流,赋能专业内容生产。
|
4月前
|
存储 缓存 自然语言处理
PHP的OPcache与全栈性能优化——从字节码缓存到预加载
PHP的执行过程分为四个阶段:词法/语法解析→生成抽象语法树(AST)→编译为字节码(opcodes)→执行(ZendVM)
242 9
|
4月前
|
缓存 NoSQL 网络协议
如何为我的网站或应用集成IP归属地查询功能?
本文为网站/应用集成IP归属地查询的落地指南:强调“取对IP”是前提(仅信可信上游、严滤私网),采用“本地+Redis缓存+在线API+硬超时熔断”架构,失败自动降级至省/国家;区分展示型与风控型模型,确保可解释、可审计、可回滚,并严守隐私合规红线。(239字)
348 13
|
9月前
|
SQL 数据可视化 大数据
我是谁?我从哪来?我要到哪去?——聊聊数据血缘分析的“前世今生”
我是谁?我从哪来?我要到哪去?——聊聊数据血缘分析的“前世今生”
631 11
|
4月前
|
机器学习/深度学习 数据采集 人工智能
跨越鸿沟:传统产品经理如何迈向AI产品经理的黄金赛道
跨越鸿沟:传统产品经理如何迈向AI产品经理的黄金赛道
|
4月前
|
存储 人工智能 弹性计算
2026最新阿里云优惠活动整理:免费中心、活动中心、企业、个人及学生活动整理
2026阿里云优惠大全,阿里云官方活动中心:https://t.aliyun.com/U/cyOqck 涵盖免费中心(160+产品试用)、活动中心、云服务器特惠(38元起)、学生「云工开物」300元无门槛券及算力包、企业5亿算力补贴、域名1元/免费CN、AI Tokens等,一站式省钱上云指南。
408 4

热门文章

最新文章