--- description: bdrp-app 页面写法(参考 bdrp-mini) globs: src/pages/**/*.vue alwaysApply: false --- # bdrp-app 页面规范(按 mini 风格) - 使用 Vue SFC + `script setup`,不要混用 Options API。 - 页面元信息统一写在 `definePage(...)`,并放在脚本顶部。 - `layout` 只用三种:`home`(首页/资产/我的/推广类)、`default`(普通业务页)、`false`(登录/分享/维护等无壳页面)。 - 站内路由跳转必须使用 uni 官方导航 API,不使用 `window.location.href`、`router.push`、`router.back`。 - 跳转规范:普通页用 `uni.navigateTo`,替换当前页用 `uni.redirectTo`,回首页/重开流程用 `uni.reLaunch`,tab 页切换用 `uni.switchTab`,返回用 `uni.navigateBack`。 - 接口调用使用 `async/await` + `try/catch`;失败统一 `uni.showToast({ title: 'xxx', icon: 'none' })`。 - 页面不要直接硬编码产品枚举,优先后端配置 + 本地白名单兜底(与 mini 的动态加载策略一致)。 - 页面模板优先使用 uni 标签:``、``、``、``、``;避免在页面层大量使用纯 H5 标签(如 `div/span/img`)。 - 图片与资源使用 uni 写法:``,避免直接依赖 H5 行为。 - 生命周期优先使用 uni 页面生命周期:`onLoad`、`onShow`、`onPullDownRefresh`、`onReachBottom`、`onUnload`;通用副作用再用 Vue 的 `onMounted/onUnmounted`。 - 页面文件尾部允许并推荐使用 `` 声明页面配置(如 `layout`、`style`、`title`、`auth`、`agent`);与 `definePage(...)` 保持一致,避免冲突。 - UI 组件库统一优先使用 `wot-design-uni`(`wd-*` 组件);新增或重构页面时不再引入 `vant` 组件。 - 历史页面若存在 `van-*` 组件(如 `van-button`、`van-icon`、`van-popup`、`van-field`),重构时应替换为 `wd-*` 或 uni 原生标签实现。 ## 示例 ```vue ``` ```vue ``` ```vue { "layout": "home", "style": { "navigationStyle": "custom" } } ```