阅读时间:1 分钟
0 字
模块开发
Dux Uni 推荐你把应用按业务模块开发,而不是继续把页面、状态和逻辑散在全局目录里。
一个模块的最小结构
text
src/modules/orders/
pages/
components/
store/
index.ts每个目录放什么
text
pages/ # 模块真实页面
components/ # 只服务当前模块的组件
store/ # 当前模块的 Pinia store
index.ts # 模块入口,负责注册模块自己的能力新模块的推荐顺序
text
1. 新建模块目录
2. 补 index.ts
3. 新建 pages/index.vue
4. 在页面里写 <route> 和 Hook
5. 运行 sync:uni
6. 再检查生成出来的路由和 pages.json模块页面示例
vue
<route lang="json">
{
"title": "订单列表",
"auth": true
}
</route>
<script setup lang="ts">
import { useList, useRouter } from '@duxweb/uni'
const router = useRouter()
const list = useList({
path: 'orders', // 对应 data provider 的资源路径
pagination: 20, // 开启分页
})
function goDetail(id: number) {
return router.to({
name: 'orders.detail', // 页面名默认由 模块名.页面名 推导
query: { id },
})
}
</script>模块开发的关键原则
- 页面写在
modules/*/pages/* - 不手写
src/pages/* - 模块自己的注册都尽量收回
index.ts - 全局只保留应用骨架,不处理模块内部细节