62 lines
2.4 KiB
Markdown
62 lines
2.4 KiB
Markdown
Git 提交规范
|
||
- feat 新增功能
|
||
- fix 修复 Bug
|
||
- docs 文档更新(如 README、CHANGELOG 等)
|
||
- style 代码样式调整(如空格、格式化等,不涉及功能变更)
|
||
- refactor 代码重构(既不修复 Bug 也不新增功能)
|
||
- perf 性能优化
|
||
- test 添加或修改测试代码
|
||
- chore 构建过程或辅助工具的变动(如依赖更新、配置文件修改等)
|
||
- revert 回滚之前的提交
|
||
|
||
|
||
代码规范
|
||
- 使用v-for时必须添加:key
|
||
- 组件props必须定义类型和默认值
|
||
- 复杂逻辑必须添加注释
|
||
- 敏感信息不硬编码
|
||
- 变量/函数:小驼峰式命名 (camelCase)
|
||
- 组件/类:小驼峰式命名 (pascalCase)
|
||
- 合理使用缓存
|
||
- 避免不必要的重渲染
|
||
- 工具函数放在/utils目录
|
||
- 公共组件放在/components目录
|
||
|
||
|
||
常见 class 命名规范
|
||
- container 用于页面最外层容器
|
||
- header 头部区域
|
||
- main 主要内容区域
|
||
- footer 底部区域
|
||
- left 左侧区域
|
||
- right 右侧区域
|
||
- title 标题
|
||
- nav 导航区域
|
||
- banner 轮播图/广告 区域
|
||
- tabs 标签区域
|
||
- list 列表区域
|
||
|
||
|
||
循环调用避坑指南:
|
||
- 页面: page/shopcity/index.vue 城市选择列表页
|
||
- 背景: 城市名称列表依赖于父级城市英文首字母简写例:A、B、C, 循环项下的list 进行循环展示
|
||
- 场景: 城市列表点击,需要获取点击的城市信息
|
||
- 问题: 触发点击事件函数无法接收入参item
|
||
- 解决方案: 改为箭头函数 @click="() => { headerSelectMapClick(item) }"
|
||
- 原因: 查询DeepSeek给出的解释是, 箭头函数创建了一个闭包,保留了 item 的引用 即使列表重新渲染,也能保持对正确 item 的引用
|
||
- 该解释是否正确 不确定 有待考量
|
||
- 示例代码
|
||
<!--
|
||
<scroll-view class="list-scroll" scroll-y :scroll-into-view="activeId" @scroll="handleScroll">
|
||
<view v-for="(group, index) in groupedData" :key="index" class="white_container" :id="'group-' + group.letter">
|
||
<view class="letter-title">{{ group.letter }}</view>
|
||
<view v-for="(item, ind) in group.list"
|
||
:key="item.id"
|
||
:class="['list-item', ind === group.list.length - 1 && 'no_border']"
|
||
@click="headerSelectMapClick(item)" // TODO:问题点 为什么无法获取点击的item参数
|
||
>
|
||
{{ item.name }}
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
--> |