构建 Pagelyze 教给我的 React 开发经验

构建 Pagelyze 改变了我对 React 的看法。我不再仅仅关注理论,而是开始关注产品架构。

Pagelyze 是一个网站审计工具。它不是一个简单的练习项目,而是需要处理审计报告、评分逻辑和仪表板。因此,我必须回答一个问题:

随着产品的增长,代码能否保持整洁?

useStateuseEffect 这样的 Hooks 很重要,但它们并不是全部。即使使用了现代语法,代码可能依然难以维护。问题通常出在“职责”上。

在糟糕的设计中,一个文件会处理从加载数据到显示结果的所有事情。随着规模扩大,这种方式会失效。

更好的做法是按用途拆分组件:

  • AuditSummary
  • LeadCheckPanel
  • EvidenceList
  • ServiceRecommendationCard
  • ReportActions

每个部分只负责一项工作。你可以修改卡片设计,而不会破坏数据逻辑。

不要再纠结是否应该使用 Redux 或 Context,而要问:谁需要这个状态?

  • 本地 UI 状态:标签页和模态框
  • 表单状态:URL 和校验
  • 服务端状态:报告和扫描
  • 全局状态:用户信息和权限

自定义 Hooks 应该代表某种行为,而不仅仅是将混乱的代码移动到另一个文件中。一个好的 Hook 应该负责获取数据,从而让页面组件只负责协调屏幕显示。

按功能组织文件夹结构:

  • features/audit-report/
  • features/lead-rescue/
  • features/dashboard/

路由不仅仅是 URL,它更是用户旅程。用户从落地页开始,进行免费审计,查看报告,最后发起服务咨询。良好的路由能引导他们进入下一步。

带着清晰的目标去构建。找到瓶颈,然后修复那个特定的部分。

React 的最佳实践在于决策。你决定组件拥有什么,你决定状态存储在哪里,你决定路由是否对用户有帮助。

Pagelyze 是我的测试。我测试的不是我能否构建一个页面,而是我能否在产品增长的过程中保持其代码的整洁。

Source: https://dev.to/prazink/what-building-pagelyze-taught-me-about-react-best-practices-5fhb