遇到了什么困难和挑战

62 阅读2分钟

1. 在权限控制和安全性方面遇到了哪些挑战?如何解决?

答案:
项目中菜单和页面访问都需要根据用户角色进行权限控制。挑战在于如何前后端协同,既保证前端体验又防止越权访问。
解决方案:

  • 后端接口根据用户 token 校验权限,返回对应菜单和数据。
  • 前端如 SideMenu.vue 组件会根据用户角色过滤菜单,RecursiveMenu.vue 递归渲染时也会判断 requireAdmin 字段。
  • 敏感操作和页面,前端路由守卫和后端接口双重校验,防止通过接口绕过前端限制。

2. 大数据量表格渲染时遇到哪些性能瓶颈?如何优化?

答案:
当数据量很大时,普通表格会导致页面卡顿甚至崩溃。
解决方案:

  • 封装了 VirtualTable.vue 虚拟滚动表格组件,仅渲染可视区域的数据,大幅减少 DOM 节点数量。
  • 结合搜索、排序等功能,前端只处理必要的数据,提升了用户体验和页面流畅度。

3. 实现大文件上传时遇到哪些技术难点?如何解决?

答案:
大文件上传容易超时、失败,且需要支持断点续传和进度显示。
解决方案:

  • Upload.vue 组件将文件分片上传,前端计算文件 hash,已上传分片跳过,失败可重试。
  • 上传过程中实时显示进度条,上传完成后请求后端合并分片,提升了上传的可靠性和用户体验。

4. 组件复用和解耦方面遇到哪些问题?如何设计?

答案:
项目需要多个页面用到菜单、表格、上传等功能,如何保证组件的通用性和可维护性是个挑战。
解决方案:

  • 采用 propsemits 设计组件接口,如 Editor.vueUpload.vueVirtualTable.vue 都支持父子通信和自定义扩展。
  • 递归组件(如 RecursiveMenu.vue)实现多级菜单的灵活复用,减少重复代码。

5. 多端适配和响应式布局遇到哪些问题?如何处理?

答案:
需要保证 PC 和移动端都能良好显示,尤其是导航栏、菜单栏等。
解决方案:

  • 组件如 TopHeader.vueSideMenu.vue 监听窗口大小变化,动态调整布局和样式。
  • 使用 SCSS 媒体查询和变量,保证不同屏幕下的样式自适应,提升了多端兼容性。