前端面试:组件设计与代码质量
1. 一个好组件应该具备哪些特点? 职责单一、接口清晰、可复用、可扩展、状态明确、边界处理完整、样式不污染外部。 2. 业务组件和基础组件怎么区分? 基础组件偏通用,比如按钮、弹窗、表格;业务组件绑定具体业务,比如用户选择器、订单卡片。基础组件强调通用性,业务组件强调场景效率。 3. 如何设计一个弹窗组件? 支持 visible/v-model 、标题、内容 slot、确认取消事件、loading、关闭前校验、遮罩关闭、销毁策略。 4.
八、组件设计与代码质量
1. 一个好组件应该具备哪些特点?
职责单一、接口清晰、可复用、可扩展、状态明确、边界处理完整、样式不污染外部。
2. 业务组件和基础组件怎么区分?
基础组件偏通用,比如按钮、弹窗、表格;业务组件绑定具体业务,比如用户选择器、订单卡片。基础组件强调通用性,业务组件强调场景效率。
3. 如何设计一个弹窗组件?
支持 visible/v-model、标题、内容 slot、确认取消事件、loading、关闭前校验、遮罩关闭、销毁策略。
4. 如何设计一个表格/列表筛选组件?
筛选项配置化,支持默认值、重置、查询、分页、loading、空状态。表格列也可以配置化,复杂列用 slot。
5. 如何避免组件过度封装?
只封装稳定重复的逻辑,不为了抽象而抽象。组件接口不要设计太多参数,优先满足真实复用场景。
6. 如何处理组件之间复杂的数据传递?
父子用 props/emits,跨层用 provide/inject,跨页面或全局状态用 Pinia。避免多层透传导致维护困难。
7. Code Review 你一般关注什么?
功能正确性、边界情况、类型准确性、可读性、性能、安全、重复代码、命名规范、是否符合团队约定。
8. 你怎么保证代码可维护性?
清晰目录、统一规范、组件拆分合理、类型完善、代码审查、文档补充、复杂逻辑加测试或注释。
9. 如果接手一个很乱的老项目,你会怎么治理?
先保证功能稳定,不大面积重构。逐步补规范、整理目录、抽公共逻辑、清理无用代码、加类型和文档,边做业务边治理。
10. 如何写技术文档?
写清背景、目标、方案、接口、使用方式、注意事项和变更记录。文档重点是让别人能快速接手和排查问题。
评论留言
登录后可留言和点赞