uni-app-patterns.mdc 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # uni-app 开发规范
  2. ## 页面开发
  3. - 页面文件放在 [src/pages/](mdc:src/pages/) 目录下
  4. - 使用约定式路由,文件名即路由路径
  5. - 页面配置在仅需要在 宏`definePage` 中配置标题等内容即可,会自动生成到 `pages.json` 中
  6. ## 组件开发
  7. - 组件文件放在 [src/components/](mdc:src/components/) 或者 [src/pages/xx/components/](mdc:src/pages/xx/components/) 目录下
  8. - 使用 uni-app 内置组件和第三方组件库
  9. - 支持 wot-ui\uview-pro\uv-ui\sard-ui\uview-plus 等多种第三方组件库 和 z-paging 组件
  10. - 自定义组件遵循 uni-app 组件规范
  11. ## 平台适配
  12. - 使用条件编译处理平台差异
  13. - 支持 H5、小程序、APP 多平台
  14. - 注意各平台的 API 差异
  15. - 使用 uni.xxx API 替代原生 API
  16. ## 示例代码结构
  17. ```vue
  18. <script setup lang="ts">
  19. // #ifdef H5
  20. import { h5Api } from '@/utils/h5'
  21. // #endif
  22. // #ifdef MP-WEIXIN
  23. import { mpApi } from '@/utils/mp'
  24. // #endif
  25. const handleClick = () => {
  26. // #ifdef H5
  27. h5Api.showToast('H5 平台')
  28. // #endif
  29. // #ifdef MP-WEIXIN
  30. mpApi.showToast('微信小程序')
  31. // #endif
  32. }
  33. </script>
  34. <template>
  35. <view class="page">
  36. <!-- uni-app 组件 -->
  37. <button @click="handleClick">点击</button>
  38. <!-- 条件渲染 -->
  39. <!-- #ifdef H5 -->
  40. <view>H5 特有内容</view>
  41. <!-- #endif -->
  42. </view>
  43. </template>
  44. ```
  45. ## 生命周期
  46. - 使用 uni-app 页面生命周期
  47. - onLoad、onShow、onReady、onHide、onUnload
  48. - 组件生命周期遵循 Vue3 规范
  49. - 注意页面栈和导航管理
  50. ---
  51. globs: src/pages/*.vue,src/components/*.vue
  52. ---