简介:这是一款面向设计师与前端开发者的零代码可视化开发工具,基于DIYGWUI框架,专为快速构建微信小程序、H5页面及UNIAPP应用而设计,无需编程基础即可通过拖拽完成界面搭建与逻辑配置。资源包共1516个文件,总大小12.04MB,涵盖412个JavaScript文件(支撑交互逻辑)、188个Vue组件(用于跨端渲染)、251个JSON配置(定义页面结构与数据模型)、98个PNG图片(含UI图标与素材),以及适配多端的小程序样式文件(如wxss、axml、swan、ttml等)和SCSS/CSS样式资源,目录组织规范,便于按平台或功能模块快速定位。已有389人学习下载,适合希望提升原型产出效率、降低多端适配成本的UI/UX设计师、产品原型工程师及初级前端开发者。用户可直接导入项目,一键导出完整可运行源码,覆盖微信、支付宝、抖音、百度等主流小程序平台及H5/WebApp形态。
1. 这不是“拖拽拼页面”的玩具,而是一套能导出可直接上线的 UNIAPP 和微信小程序源码的可视化工程体系
很多设计师第一次点开 DIYGWUI 的界面时,会下意识认为这是个“PPT式网页生成器”——拖几个按钮、换张背景图、导出 HTML 就完事。但实际拆开它包含的 1453 个文件后你会发现:zsff.acss不是普通样式表,而是针对小程序scroll-view滚动性能优化的原子级 CSS 规则集;swipers.acss里嵌套了@supports (display: grid)+transform: translateZ(0)双重 fallback,专为 iOS 12+ 微信 WebView 渲染引擎做兼容;page.acss中的position: fixed声明全部被包裹在.page--no-safe-area类中,规避 iPhone X 以上机型顶部刘海区遮挡问题。它真正解决的,是设计与交付之间的「语义断层」:UI 设计师用 Figma 画完高保真稿,无需等前端切图写逻辑,直接在 DIYGWUI 中复现交互流、绑定数据字段、配置路由跳转,最终一键生成的不是静态 HTML,而是结构完整、可npm run dev启动、带uni-app生命周期钩子、含wx.requestPayment支付封装、支持uni.getSystemInfoSync().platform === 'ios'条件编译的真实工程源码。适合两类人:一是中小团队中既要做原型又要兼顾上线的全栈型产品;二是需要快速验证业务流程、拒绝“设计稿→评审→开发排期→联调→上线”长周期的 MVP 创业者。
2. 从 ACSS 文件体系看 DIYGWUI 的底层渲染机制:为什么它能同时输出小程序与 H5 源码
DIYGWUI 并非简单地把 Vue 组件转成 WXML,而是构建了一套跨平台的样式抽象层(ACSS),其核心在于将视觉属性映射为平台无关的中间表示,再由编译器按目标平台生成对应代码。以tab.acss为例,它不直接写wx:for或v-for,而是定义@component tab-bar { ... }块,内部声明item-height: 80rpx、active-color: #007AFF、inactive-color: #999等语义化属性。当选择导出微信小程序时,编译器会将item-height: 80rpx转为 WXML 中<view class="tab-item" style="height: 80rpx">,并自动注入wx:for="{{tabs}}"指令;导出 H5 时,则生成<div class="tab-item" :style="{ height: '80px' }">,配合 Vue 的响应式系统驱动更新。这种设计避免了传统可视化工具常见的“H5 能跑,小程序白屏”问题。
2.1 ACSS 文件的语法结构与编译规则解析
ACSS(Abstract CSS)是 DIYGWUI 自研的样式描述语言,语法类似 SCSS 但更精简,关键特性包括组件作用域、条件编译、单位自动转换。以collapse.acss为例:
@component collapse { // 基础样式:所有平台共用 border: 1px solid #eee; border-radius: 4px; // 条件编译:仅小程序生效 @if platform === 'mp-weixin' { margin-top: 20rpx; padding: 20rpx; } // 条件编译:仅 H5 生效 @if platform === 'h5' { margin-top: 16px; padding: 16px; } // 响应式单位:rpx 在小程序中转为 rpx,H5 中转为 rem font-size: 14rpx; // 嵌套子组件 @component header { display: flex; justify-content: space-between; align-items: center; padding: 0 16rpx; } }提示:
rpx单位在 ACSS 编译阶段被处理——小程序目标下保留rpx,H5 目标下按750rpx = 100vw换算为rem,例如14rpx→0.1867rem(14/75)。该转换在build/config.js的unitConvert配置项中可自定义比例。
2.2 关键 ACSS 文件功能对照表与平台适配逻辑
| 文件名 | 核心功能 | 小程序侧特殊处理 | H5 侧特殊处理 | 对应 UNIAPP 组件 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
index.acss | 全局重置与基础变量定义 | 注入@import './common/weixin.css'; | 注入@import './common/h5.css'; | uni-app的common.scss | ||||||||||
zsff.acss | 表单控件(输入框、开关、滑块) | 使用wx-input绑定bindinput事件 | 使用<input>绑定@input | uni-input,uni-switch | ||||||||||
swipers.acss | 轮播容器 | 强制启用wx-swiper的circular和autoplay属性 | 使用swiper-js库,禁用touchMove防止 iOS 滚动冲突 | uni-swiper | ||||||||||
shop.acss | 商品列表卡片 | 添加wx:for循环及># 1. 进入项目根目录(含 package.json 的位置) cd /path/to/diygwui-project # 2. 修改 ACSS 文件(例如调整 tab 选中色) echo "@component tab-bar { active-color: #FF6B35; }" >> src/styles/tab.acss # 3. 执行编译命令(指定目标平台) npm run build -- --platform mp-weixin # 4. 查看生成结果(小程序) ls -l dist/dev/mp-weixin/components/tab-bar/ # 输出:tab-bar.vue, tab-bar.wxss, tab-bar.json —— 已含新颜色值 # 5. 验证 H5 输出 npm run build -- --platform h5 ls -l dist/build/h5/css/tab-bar.css # 输出:.tab-bar__item--active { color: #FF6B35; }
编译过程本质是 ACSS 解析器读取所有 3. 导出源码的实操路径:从可视化编辑到可部署的 UNIAPP 工程DIYGWUI 的导出能力远超“下载 ZIP 包”,它生成的是符合 3.1 导出前必做的三项配置校验在点击“导出源码”按钮前,必须完成以下检查,否则生成的工程可能无法运行: 3.1.1 页面路由配置校验( |
| 现象 | 原因 | 修复方式 |
|---|---|---|
H5 页面空白,控制台报TypeError: Cannot read property 'push' of undefined | router/index.js中routes数组未初始化 | 手动在src/router/index.js第 5 行添加const routes = [] |
| 小程序 swiper 不自动播放 | swipers.acss中autoplay: true未生效 | 检查swipers.acss是否被正确导入,在pages/index/index.vue的<style>中添加@import '@/styles/swipers.acss'; |
| 表单提交后无响应 | zsff.acss绑定的submit事件未触发 | 进入components/form/form.vue,确认<form @submit="handleSubmit">中handleSubmit方法是否存在,若不存在则需在methods中补充:handleSubmit(e) { e.preventDefault(); uni.showToast({ title: '提交成功' }); } |
3.3 一键打包为 App 的实操要点(App Plus 平台)
DIYGWUI 支持导出app-plus(iOS/Android)目标,但需额外配置签名证书。导出后执行:
# 1. 安装 HBuilderX(官方推荐 IDE,支持真机调试) # 2. 在 HBuilderX 中打开 dist/build/app-plus 目录 # 3. 点击【发行】→【原生App-云打包】 # 4. 上传证书(Android keystore 或 iOS p12)并填写包名(如 com.example.shop) # 5. 选择“自定义基座”以启用 NFC、蓝牙等高级 API注意:若打包后 App 启动白屏,大概率是
vue.config.js中configureWebpack的externals配置错误。DIYGWUI 默认将uni相关模块设为 externals,但app-plus平台需取消该设置——手动注释掉:// configureWebpack: { // externals: { // 'uni-app': 'uni', // '@dcloudio/uni-mp-weixin': 'uni' // } // }
4. 深度定制技巧:如何复用 DIYGWUI 的 ACSS 体系开发自有组件库
DIYGWUI 的真正价值不在于“用它做项目”,而在于“把它当框架来扩展”。其 ACSS 编译器开源(位于node_modules/@diygwui/compiler),允许你编写自己的.acss文件并集成进现有工程。例如,为电商场景新增一个“阶梯价格”组件,只需三步:
4.1 编写自定义 ACSS 组件step-price.acss
在src/styles/下新建文件:
@component step-price { // 基础容器 display: flex; flex-direction: column; gap: 8rpx; // 价格区间项 @component item { display: flex; justify-content: space-between; align-items: center; padding: 12rpx 16rpx; background-color: #F9F9F9; border-radius: 4rpx; &--active { background-color: #FFF8E1; border-left: 4rpx solid #FFC107; } .quantity { font-weight: bold; color: #333; } .price { color: #E64A19; font-size: 28rpx; } } } // 条件编译:H5 需要 hover 效果 @if platform === 'h5' { @component step-price { .item:hover { background-color: #F5F5F5; transform: scale(1.02); transition: all 0.2s ease; } } }4.2 创建对应 Vue 组件模板step-price.vue
在src/components/step-price/step-price.vue中:
<template> <view class="step-price"> <view v-for="(item, index) in priceList" :key="index" :class="['step-price__item', { 'step-price__item--active': item.active }]" @click="onItemClick(item)" > <text class="step-price__quantity">{{ item.quantity }}件起</text> <text class="step-price__price">¥{{ item.price }}</text> </view> </view> </template> <script> export default { name: 'StepPrice', props: { priceList: { type: Array, default: () => [] } }, methods: { onItemClick(item) { this.$emit('select', item) } } } </script> <style lang="scss"> // 此处不写样式,由 ACSS 编译器注入 </style>4.3 在主页面中引用并绑定数据
在pages/product/detail.vue中:
<template> <view class="product-detail"> <!-- 其他内容 --> <step-price :price-list="priceOptions" @select="handlePriceSelect" /> </view> </template> <script> import StepPrice from '@/components/step-price/step-price.vue' export default { components: { StepPrice }, data() { return { priceOptions: [ { quantity: 1, price: 99, active: true }, { quantity: 10, price: 89, active: false }, { quantity: 50, price: 79, active: false } ] } }, methods: { handlePriceSelect(item) { console.log('选中阶梯价:', item) uni.showToast({ title: `已选 ${item.quantity} 件,单价 ¥${item.price}` }) } } } </script>此时执行npm run build -- --platform h5,编译器会自动将step-price.acss中的样式注入到step-price.vue的<style>标签内,并为 H5 平台添加:hover伪类。整个过程无需手动写 CSS,也不用担心平台差异——ACSS 体系已为你兜底。
提示:若需在小程序中使用
step-price组件,需在pages.json的对应页面usingComponents中声明:"usingComponents": { "step-price": "/components/step-price/step-price.vue" }并确保
step-price.vue的style标签中lang="scss"已被 ACSS 编译器识别(DIYGWUI 会在构建时自动替换为编译后的 CSS)。
这套机制让团队能沉淀出符合自身业务规范的 UI 组件库,所有设计师只需在 DIYGWUI 中拖拽step-price组件、绑定priceList数据源,即可生成跨平台可用的代码,彻底打破“设计→切图→开发→联调”的协作壁垒。
本文还有配套的精品资源,点击获取
STM32F030F4P6 TIM1 PWM稳定输出三大硬件陷阱与寄存器级配置
简介:本资源是面向嵌入式初学者与STM32开发者的STM32F030F4P6微控制器PWM功能实战例程包,聚焦低功耗Cortex-M0芯片的脉宽调制应用,解决电机控制、LED调光及DHT11传感器协同驱动等典型场景中的定时器配置与占空比调节难题。压缩包共149个文件&…
Garden Skills 设计方向顾问:AI 网页风格怎么选,3 个跨流派方向说清楚
Garden Skills 设计方向顾问:AI 网页风格怎么选,3 个跨流派方向说清楚 【免费下载链接】garden-skills ConardLis open-source Skills collection, featuring web design, knowledge retrieval, image generation, and more. 项目地址: https://gitcod…
智能磁吸供电接口:即插即认的Smart Power实现原理
1. 项目概述:这不是普通磁吸头,而是智能供电系统的“即插即认”神经末梢“Straight Round Magnetic Connector for Smart Power”——这个标题乍看像一个工业零件编号,但拆开来看,它其实指向一个正在快速落地的底层技术变革&#…
SpringBoot+Vue车联网位置管理系统架构解析
1. 项目概述:车联网位置信息管理系统的技术架构解析2025年最新版的车联网位置信息管理系统,采用SpringBootVue的前后端分离架构,结合SpringCloud微服务体系,实现了车辆位置数据的实时采集、存储与分析功能。这套系统特别适合中小型…
buildkit 中的 Huff0 熵压缩:zstd 字面量编码的 Go 实现与块级压缩实践
buildkit 中的 Huff0 熵压缩:zstd 字面量编码的 Go 实现与块级压缩实践 【免费下载链接】buildkit concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit 项目地址: https://gitcode.com/GitHub_Trending/bu/buildkit Huff0 是一套专为现代…
3 步跑通从登录到下载:ipatool 命令行下载 App Store IPA 完整教程
3 步跑通从登录到下载:ipatool 命令行下载 App Store IPA 完整教程 【免费下载链接】ipatool Command-line tool that allows you to search for iOS, iPadOS, tvOS, visionOS, and macOS apps on the App Store, and download .ipa or macOS .pkg app packages. …