核心是通过结构化设计减少重复:封装通用函数、用映射表替代条件分支、统一异步处理、组件化配置驱动ui。

核心思路是把重复出现的逻辑抽出来,统一管理、按需调用。不是靠删代码来精简,而是靠结构设计让相同的事只写一次。
提取函数封装通用操作
当多个地方都在做“格式化时间”“校验手机号”“深拷贝对象”这类事,就该立刻封装成独立函数。函数名要能说明用途,比如 formatDate、isValidPhone、deepClone。所有调用点都改用这个函数,后续改规则只需动一处。
- 参数尽量用对象解构,支持可选字段和默认值,避免传参过长
- 函数内部不依赖外部变量,保持纯逻辑,方便单元测试
- 高频工具函数统一收进 utils.js 或按功能分模块(如 dateUtils.js)
用映射表替代多层 if/else 或 switch
比如根据课程类型加载不同题库、根据状态码显示不同提示文案、根据角色渲染不同按钮——这些分支逻辑稳定且数量较多时,硬写条件判断容易漏、难扩展。换成对象映射更直观可靠。
- const questionBank = { Biology: biologyQ, Chemistry: chemistryQ, Physics: physicsQ };
- const statusText = { 200: '成功', 401: '未登录', 500: '服务异常' };
- 取值直接 questionBank[topic] || questionBank.Physics,简洁又防错
统一处理异步流程与错误边界
大型项目里,API 请求几乎处处可见:loading 状态、成功回调、失败提示、重试机制……如果每个页面都手写一遍,不仅重复,还容易不一致。可以抽象出一个请求封装函数。
- 统一加 token、统一拦截 401 跳登录、统一 toast 错误信息
- 支持传入 showLoading: false 关闭全局 loading
- 返回 Promise,配合 async/await 使用自然,不破坏原有逻辑流
组件化 + 配置驱动 UI 逻辑
表单、列表、弹窗等 UI 模块经常在不同页面重复出现。与其复制粘贴 HTML 和事件绑定,不如做成可配置的组件。
- 比如一个 FormRenderer 组件,接收字段配置数组,自动生成输入框、校验规则、提交逻辑
- 一个 TableList 接收列定义和数据源,自动渲染带排序、搜索、分页的表格
- 配置项用 JS 对象描述,逻辑复用,样式复用,行为也复用
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











