Salesforce LWC 中的高级模式:可重用组件和性能优化

主要观点:

  • 大规模构建 Lightning Web Components(LWC)会遇到诸多问题,如重复逻辑、臃肿的包、莫名的重渲染、组件间意外耦合等。
  • 在 Salesforce 平台构建应用时,可复用性和性能至关重要,传统“先快速构建后优化”的方法不再适用。
  • 介绍了 6 种有助于打破 LWC 开发瓶颈的模式,包括组合优于继承、无状态展示组件、事件合约与发布/订阅边界、条件渲染与 DOM 片段化、本地存储与缓存、懒加载与动态导入等。
  • 通过在持续集成中使用 ESLint、Jest 测试和 Storybook 等工具来保障可复用性。
  • 这些模式是从具体失败中总结而来,随着复杂度增加,需要可扩展的规则和模式来应对。

关键信息:

  • 常见问题:重复逻辑、臃肿包、莫名重渲染、组件耦合等。
  • 平台特点:不再只是 CRM,而是应用平台,需处理复杂 UI、API 后端、严格限制等。
  • 6 种模式细节:

    • 组合模式:避免创建巨大父组件,遵循严格组合规则,组件独立且通过 @api 和 CustomEvent 交互。
    • 无状态展示组件:借鉴 React,只根据输入渲染,便于测试和复用,减少副作用。
    • 事件合约:每个组件有明确的事件集,避免 rogue dispatchEvent 调用,划分 Pub/Sub 边界并版本化事件。
    • 条件渲染与 DOM 片段化:谨慎使用 {#if},避免不必要的重渲染和 DOM 增长,用 hidden 或 style.display 隐藏。
    • 本地存储与缓存:利用 SessionStorage、LocalStorage 和 Lightning Data Service 进行缓存, memoize Apex 调用。
    • 懒加载与动态导入:在组件需要时加载第三方库或昂贵 JS 模块,减少初始包大小。
  • 测试与 linting:在 CI 中使用 ESLint、Jest 和 Storybook 保障可复用性,组件 PR 要求有使用示例和故事。

重要细节:

  • 以具体的代码示例展示各种模式的应用,如父组件与分页控制组件的示例、无状态组件的代码等。
  • 提到具体的性能提升数据,如事件 bug 减少 40%、首页启动时间下降 20%、分析标签初始包大小减少 600KB 等。
  • 强调这些模式是从实际失败中总结得出,随着复杂度增加而逐渐形成。
阅读 37
0 条评论