Wot Design Uni:一个高颜值、轻量化的uni-app组件库,uni-app生态的新宠

2024-08-23 08:20

本文主要是介绍Wot Design Uni:一个高颜值、轻量化的uni-app组件库,uni-app生态的新宠,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、介绍

图片

wot-design-uni组件库基于vue3+Typescript构建,参照wot design的设计规范进行开发,提供70+高质量组件,支持暗黑模式、国际化和自定义主题,旨在给开发者提供统一的UI交互,同时提高研发的开发效率。

特性:

🎯 多平台覆盖,支持 微信小程序、支付宝小程序、钉钉小程序、H5、APP 等.

🚀 70+ 个高质量组件,覆盖移动端主流场景.

💪 使用 Typescript 构建,提供良好的组件类型系统.

🌍 支持国际化,内置 6 种语言包.

📖 提供丰富的文档和组件示例.

🎨 支持修改 CSS 变量实现主题定制.

🍭 支持暗黑模式

二、安装及使用

Wot Design Uni提供了uni_modules和npm两种安装方式,按需选择。

使用uni_modules安装无需额外配置,即插即用,但是每次更新组件库需要处理代码差异(一般直接覆盖就可以)。

使用npm安装需要额外配置,更新组件库时无需处理代码差异。

2.1 安装

uni_modules安装:

在uni-app插件市场选择使用HBuildX导入,或者选择手动在src目录下创建uni_modules文件夹并将Wot Design Uni解压到uni_modules中,结构如下:

- uni_modules
- - - wot-design-uni

npm安装:

// npm
npm i wot-design-uni// yarn 
yarn add wot-design-uni// pnpm
pnpm add wot-design-uni

2.2 自动引入组件

配置easycom引入:
传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。easycom将其精简为一步。只要组件路径符合规范,就可以不用引用、注册,直接在页面中使用。

// pages.json
{"easycom": {"autoscan": true,"custom": {"^wd-(.*)": "wot-design-uni/components/wd-$1/wd-$1.vue"}},"pages": [// ......]
}

基于vite配置引入:
可以通过@uni-helper/vite-plugin-uni-components实现组件的自动引入。

// npm
npm i @uni-helper/vite-plugin-uni-components -D// yarn
yarn add @uni-helper/vite-plugin-uni-components -D// pnpm
pnpm add @uni-helper/vite-plugin-uni-components -D

@uni-helper/vite-plugin-uni-components 0.0.8及之前版本vite.config.ts配置如下:

// vite.config.ts
import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";import Components, { kebabCase } from '@uni-helper/vite-plugin-uni-components'export default defineConfig({plugins: [// make sure put it before `Uni()`Components({resolvers: [{type: 'component',resolve: (name: string) => {if (name.match(/^Wd[A-Z]/)) {const compName = kebabCase(name)return {name,from: `wot-design-uni/components/${compName}/${compName}.vue`,}}},}]}), uni()],
});

@uni-helper/vite-plugin-uni-components 0.0.9及以后版本vite.config.ts配置如下:

// vite.config.ts
import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";import Components from '@uni-helper/vite-plugin-uni-components'
import { WotResolver } from '@uni-helper/vite-plugin-uni-components/resolvers'export default defineConfig({plugins: [// make sure put it before `Uni()`Components({resolvers: [WotResolver()]}), uni()],
});

2.3 使用

Wot Design Uni安装、配置完成之后,支持组件自动引入,故可以直接在SFC中使用,无需在页面内import,也不需要在components内声明,即可在任意页面使用。值得注意的是,uni-app平台不支持全局挂载组件,所以Message、Toast等组件仍需在SFC中显式使用,例如:

// 使用toast
<wd-toast></wd-toast>// 使用MessageBox
<wd-message-box></wd-message-box>

三、定制主题

3.1 自定义主题

Wot Design Uni 每1个组件基本都有自定义类名 custom-class,可以在组件根节点加入你页面上的类名,进行样式修改。

3.2 定制主题

每个组件提供了css 变量,可以参考config-provider组件的使用介绍来定制主题。

Wot 组件通过丰富的 CSS 变量 来组织样式,通过覆盖这些 CSS 变量,可以实现定制主题、动态切换主题等效果。

这些变量的默认值被定义在 page 节点上,如果要转 H5,默认值被定义在 :root 节点上。

:root,
page {--wot-color-success: red;--wot-color-warning: yellow;
}

通过 CSS 覆盖:你可以直接在代码中覆盖这些 CSS 变量,Button 组件的样式会随之发生改变。
/* 添加这段样式后,默认 Button 底色会变成绿色 */

:root,
page {--wot-button-normal-bg: green;
}

通过 ConfigProvider 覆盖:
ConfigProvider 组件提供了覆盖 CSS 变量的能力,你需要在根节点包裹一个 ConfigProvider 组件,并通过 theme-vars 属性来配置一些主题变量。

<wd-config-provider :theme-vars="themeVars"><div style="margin: 16px"><wd-button round block type="primary">提交</wd-button></div>
</wd-config-provider>
import { ref, reactive } from 'vue'export default {setup() {// themeVars 内的值会被转换成对应 CSS 变量// 比如 buttonPrimaryBg 会转换成 `--wot-button-primary-bg-color`const themeVars = reactive({buttonPrimaryBgColor: '#07c160',buttonPrimaryColor: '#07c160'})return {themeVars}}
}

按钮&弹框

在这里插入图片描述
在这里插入图片描述

Tabbar&Form表单

在这里插入图片描述
在这里插入图片描述

水印&锚点

在这里插入图片描述
在这里插入图片描述

图片裁剪&日历组件
在这里插入图片描述

在这里插入图片描述

做为uni-app生态的新宠,为跨平台开发注入了新的活力,也给我们带来了多样的选择。

Wot Design Uni颜值高,组件丰富,更新速度快,使用Wot Design Uni开发微信、支付宝等小程序是一个不错的选择。

文档地址:https://wot-design-uni.pages.dev/

github地址:https://github.com/Moonofweisheng/wot-design-uni

gitee地址:https://gitee.com/wot-design-uni/wot-design-uni

原文地址:原文地址

这篇关于Wot Design Uni:一个高颜值、轻量化的uni-app组件库,uni-app生态的新宠的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1098853

相关文章

Vue中组件之间传值的六种方式(完整版)

《Vue中组件之间传值的六种方式(完整版)》组件是vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用,针对不同的使用场景,如何选择行之有效的通信方式... 目录前言方法一、props/$emit1.父组件向子组件传值2.子组件向父组件传值(通过事件形式)方

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式

Spring组件初始化扩展点BeanPostProcessor的作用详解

《Spring组件初始化扩展点BeanPostProcessor的作用详解》本文通过实战案例和常见应用场景详细介绍了BeanPostProcessor的使用,并强调了其在Spring扩展中的重要性,感... 目录一、概述二、BeanPostProcessor的作用三、核心方法解析1、postProcessB

kotlin中的行为组件及高级用法

《kotlin中的行为组件及高级用法》Jetpack中的四大行为组件:WorkManager、DataBinding、Coroutines和Lifecycle,分别解决了后台任务调度、数据驱动UI、异... 目录WorkManager工作原理最佳实践Data Binding工作原理进阶技巧Coroutine

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

Vue ElementUI中Upload组件批量上传的实现代码

《VueElementUI中Upload组件批量上传的实现代码》ElementUI中Upload组件批量上传通过获取upload组件的DOM、文件、上传地址和数据,封装uploadFiles方法,使... ElementUI中Upload组件如何批量上传首先就是upload组件 <el-upl

Vue3中的动态组件详解

《Vue3中的动态组件详解》本文介绍了Vue3中的动态组件,通过`component:is=动态组件名或组件对象/component`来实现根据条件动态渲染不同的组件,此外,还提到了使用`markRa... 目录vue3动态组件动态组件的基本使用第一种写法第二种写法性能优化解决方法总结Vue3动态组件动态

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

vue解决子组件样式覆盖问题scoped deep

《vue解决子组件样式覆盖问题scopeddeep》文章主要介绍了在Vue项目中处理全局样式和局部样式的方法,包括使用scoped属性和深度选择器(/deep/)来覆盖子组件的样式,作者建议所有组件... 目录前言scoped分析deep分析使用总结所有组件必须加scoped父组件覆盖子组件使用deep前言