DuxWeb

Dux Uni

针对 uni-app 开发的 Headless 应用框架

Dux Uni 把路由、数据请求、查询缓存、表单、登录鉴权、弹层、实时连接和 Schema 渲染这些高频重复能力统一成应用层能力,让你把精力放回业务模块本身。

Why Dux Uni

围绕 uni-app 业务开发 先把基础层做好

它不是再包一层 UI,而是先把 Headless 运行时、模块装配、数据查询、鉴权流程和 JSON 渲染器这些复杂且重复的基础能力收敛起来。

Headless 应用框架

路由、导航、请求、会话、登录鉴权、查询缓存、表单、选择器、上传下载、实时连接和弹层逻辑都在 @duxweb/uni 内统一提供。

模块化应用架构

真实业务代码按 src/modules/* 组织,一个模块可以自带 pages、components、store、index.ts,并注册 hooks、middleware、layout 和事件。

登录鉴权与权限收敛

useLogin、useLogout、useCheck、useCan 配合 auth middleware 和页面 meta 一起工作,把 uni-app 场景下的登录状态和权限控制统一下来。

基于 Query 的数据能力

useList、useOne、useMany、useInfiniteList、mutation 和 invalidate 全部建立在 @tanstack/vue-query 之上,查询层可以直接复用。

上传下载与原生能力

上传、下载、定位、扫码、剪贴板、图片选择、分享、拨号、地图打开等常见 uni 原生能力都已经有统一 Hook 封装。

事件与实时连接

内置 events、listener、WebSocket 和 SSE 运行时,模块和页面之间可以通过统一事件机制扩展实时业务能力。

增强的 JSON Schema 渲染器

Schema 渲染器支持组件注册、bindings、条件、循环、switch、actions 和 model 绑定,可以直接基于后端提供的 JSON 动态渲染界面。

模块市场与云端复用友好

模块入口、页面、状态和扩展注册都按功能块沉淀,后续更适合通过云市场分享和下载模块,减少重复开发和重复封装。

uni-pro 接管 Wot 集成

@duxweb/uni-pro 提供 Wot UI 的 Root、Overlay 展示层和主题映射,让组件库能直接承接异步数据能力,并减少 UnoCSS 与主题风格割裂。

模块可以沉淀,能力可以复用

模块入口、hooks、events、middlewares、schema 组件和 layout 注册都已经进入同一套运行时,后续更容易做累计复用和可插拔扩展。

@duxweb/uni@duxweb/uni-prouni-apphooks firstmodules first
5 Minutes

跑起来 快速把 Dux Uni

如果你第一次接触 Dux Uni,先按下面三步走。先起一个模板,再跑起来,然后从模块目录开始写第一个功能。

1

创建项目

直接通过 npx 创建新应用。脚手架会询问是否启用 uni-pro、应用标题、包管理器、git 初始化和 demo 模块。

$ npx @duxweb/uni-create my-app
2

安装并启动

进入项目后安装依赖,先同步模块和页面生成产物,再启动开发服务。你真正维护的是 modules,不是 pages 包装层。

$ pnpm install && pnpm run sync:uni && pnpm run dev
3

从模块开始写业务

真实业务代码都放在 src/modules/*。如果要扩展页面能力、事件、layout、schema 组件或 middleware,就在模块入口里继续注册。

$ src/modules/orders/pages/index.vue
想先理解这套框架到底解决什么问题? 阅读概述