围绕 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 注册都已经进入同一套运行时,后续更容易做累计复用和可插拔扩展。
跑起来 快速把 Dux Uni
如果你第一次接触 Dux Uni,先按下面三步走。先起一个模板,再跑起来,然后从模块目录开始写第一个功能。
创建项目
直接通过 npx 创建新应用。脚手架会询问是否启用 uni-pro、应用标题、包管理器、git 初始化和 demo 模块。
$ npx @duxweb/uni-create my-app安装并启动
进入项目后安装依赖,先同步模块和页面生成产物,再启动开发服务。你真正维护的是 modules,不是 pages 包装层。
$ pnpm install && pnpm run sync:uni && pnpm run dev从模块开始写业务
真实业务代码都放在 src/modules/*。如果要扩展页面能力、事件、layout、schema 组件或 middleware,就在模块入口里继续注册。
$ src/modules/orders/pages/index.vue