Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

perf(view): ⚡ 优化聊天框用户信息操作选项 #173

Merged
merged 1 commit into from
Jan 10, 2025

Conversation

nongyehong
Copy link
Member

@nongyehong nongyehong commented Jan 10, 2025

💻 变更类型 | Change Type

  • ✨ feat | 新增功能
  • 🐛 fix | 修复缺陷
  • ♻️ refactor | 代码重构(不包括 bug 修复、功能新增)
  • 💄 style | 代码格式(不影响功能,例如空格、分号等格式修正)
  • 📦️ build | 构建流程、外部依赖变更(如升级 npm 包、修改 vite 配置等)
  • 🚀 perf | 性能优化
  • 📝 docs | 文档变更
  • 🧪 test | 添加疏漏测试或已有测试改动
  • ⚙️ ci | 修改 CI 配置、脚本
  • ↩️ revert | 回滚 commit
  • 🛠️ chore | 对构建过程或辅助工具和库的更改(不影响源文件、测试用例)

🔀 变更说明 | Description of Change

📝 补充信息 | Additional Information

@github-actions github-actions bot added 前端 关于前端的代码修改 Rust 基于rust代码的修改 工作流程 CI构建流程 样式 labels Jan 10, 2025
Copy link

codecov bot commented Jan 10, 2025

Codecov Report

Attention: Patch coverage is 7.35294% with 63 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/components/common/InfoPopover.vue 0.00% 48 Missing ⚠️
src/layout/index.vue 0.00% 11 Missing ⚠️
src/views/loginWindow/Login.vue 0.00% 4 Missing ⚠️
Files with missing lines Coverage Δ
src/services/webSocket.ts 0.00% <ø> (ø)
src/services/wsType.ts 5.26% <ø> (ø)
src/stores/contacts.ts 31.76% <100.00%> (-0.38%) ⬇️
src/views/Notify.vue 0.00% <ø> (ø)
src/views/Tray.vue 0.00% <ø> (ø)
src/views/loginWindow/Login.vue 0.00% <0.00%> (ø)
src/layout/index.vue 0.00% <0.00%> (ø)
src/components/common/InfoPopover.vue 0.00% <0.00%> (ø)

... and 1 file with indirect coverage changes

Copy link

PR 代码分析

### 代码变更分析

1. 代码逻辑的改动

  • InfoPopover.vue:

    • 新增了背景图片和样式调整,增加了在线状态点击事件、用户信息展示逻辑。
    • 按钮逻辑根据当前用户和好友关系进行了细化:当前用户可编辑资料,好友可以发消息,非好友则显示“加好友”按钮。
  • index.vue:

    • 使用 useThrottleFn 对通知进行节流处理,避免短时间内多次发送通知。
  • webSocket.ts:

    • 移除了 visibilitychange 事件监听器,简化了 WebSocket 的重连逻辑。
  • wsType.ts:

    • 修改了枚举值的注释,将“新好友会话”改为“成员变动”,“线推送”改为“下线通知”。
  • contacts.ts:

    • 增加了对变量的注释说明,提升了代码的可读性。
  • Notify.vue:

    • 将初始化逻辑从 onMounted 提前到 onBeforeMount,确保在组件挂载之前完成必要的初始化操作。
  • Tray.vue:

    • onBeforeMount 中设置了全局提示可见性的初始状态为 false
  • Login.vue:

    • onBeforeMount 中增加了对托盘菜单显示状态的控制,并确保在网络登录失败时清除相关状态。

2. 潜在的问题或优化空间

  • InfoPopover.vue:

    • 状态点击事件 openContentaddFriend 可能需要更详细的错误处理和用户反馈机制。
    • 图片加载失败时的处理可以进一步优化,例如提供默认占位图。
  • index.vue:

    • 节流函数的时间间隔(3000ms)是否合适,需根据实际业务需求调整。
  • webSocket.ts:

    • 移除 visibilitychange 事件后,需确保在其他场景下仍能正确处理连接问题,特别是在浏览器标签页恢复焦点时。
  • wsType.ts:

    • 枚举值的修改需要确保所有引用这些值的地方都同步更新,以避免潜在的兼容性问题。
  • contacts.ts:

    • 注释虽然增加了可读性,但并没有实质性的功能改进。如果后续有更多复杂逻辑,建议考虑单元测试。
  • Notify.vue:

    • 初始化逻辑提前到 onBeforeMount 是合理的,但需确保不会影响其他依赖项的加载顺序。
  • Tray.vue:

    • 设置全局提示状态的时机需要确认是否会与其他逻辑冲突。
  • Login.vue:

    • 清除状态的操作放在 onBeforeMount 是合适的,但仍需确保不会影响用户体验。

3. TypeScript 类型定义的准确性

  • 整体来看,TypeScript 类型定义较为准确,特别是对于 Vue 组件的 props 和 computed 属性都有明确的类型声明。
  • 建议在 InfoPopover.vue 中对 uidactiveStatus 进行更严格的类型检查,确保传入的值符合预期。

4. Vue 组件的性能影响

  • InfoPopover.vue:

    • 新增的背景图片和复杂的 DOM 结构可能会影响首次渲染性能,建议使用懒加载或按需加载图片。
    • 动态绑定类名和样式的频繁计算可能会增加重绘开销,可以考虑缓存部分计算结果。
  • Notify.vueTray.vue:

    • 初始化逻辑的调整对性能影响较小,主要关注点在于网络请求和事件监听的效率。

5. Rust 代码的安全性和性能

  • 此次变更中没有涉及 Rust 代码,因此无需特别关注 Rust 部分的安全性和性能问题。

总结

此次代码变更加强了组件的功能和逻辑处理,但在某些地方仍有优化空间,特别是性能和错误处理方面。建议在后续开发中继续关注这些问题,并通过单元测试和性能测试来验证改进效果。

*这是由通义千问 AI 自动生成的 PR 分析,仅供参考。*

@nongyehong nongyehong merged commit b024757 into master Jan 10, 2025
13 of 14 checks passed
@nongyehong nongyehong deleted the perf/info-operation branch January 10, 2025 10:51
@nongyehong nongyehong linked an issue Jan 10, 2025 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Rust 基于rust代码的修改 前端 关于前端的代码修改 工作流程 CI构建流程 样式
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[feat] 增加聊天框内info的功能选项
1 participant