Skip to content

布局系统

youlai-app 使用 @uni-helper/vite-plugin-uni-layouts 提供类 Nuxt 的布局系统,实现页面布局的统一管理和复用。

布局目录

src/layouts/
├── default.vue     # 默认布局 — 注入主题 Provider 和全局弹窗组件
└── tabbar.vue      # TabBar 布局 — 在默认布局基础上增加底部导航栏

布局组件

default.vue — 默认布局

通过 wd-config-provider 注入主题变量,注册 wd-toastwd-dialogwd-notify 等全局组件。普通页面套用此布局即可获得主题联动和弹窗能力。

tabbar.vue — TabBar 布局

default.vue 的基础上增加 wd-tabbar 底部导航栏,适用于首页、工作台、我的等主页面。组件内维护 TabBar 配置列表、激活项初始化和页面切换逻辑。

TabBar 的详细配置、主题联动、useTabbar composable 等内容见 自定义 TabBar

为页面指定布局

页面配置通过 definePage() 声明。普通页面不写 layout 时,会默认使用 default 布局:

vue
<script setup lang="ts">
definePage({
  name: "profile",
  style: { navigationBarTitleText: "个人资料" },
})
</script>

TabBar 页面需要显式指定 tabbar

vue
<script setup lang="ts">
definePage({
  name: "home",
  style: { navigationStyle: "custom" },
  layout: "tabbar",
})
</script>

特殊页面如果不想套任何布局,可以关闭布局:

vue
<script setup lang="ts">
definePage({
  name: "login",
  style: { navigationStyle: "custom", navigationBarTitleText: "" },
  layout: false,
})
</script>

更完整的页面生成和路由配置说明见 路由系统,自定义 TabBar 见 TabBar 文档

布局选择指南

页面类型推荐布局说明
普通页面、详情页、表单页不写或 default默认布局,通常无需显式声明
首页、工作台、我的等主页面tabbar需要底部导航栏
登录、引导页、全屏页false不套布局,页面完全自定义

基于 MIT 许可发布 · 如需部署协助或二开定制,请查看 支持与合作