关于 generating-lwc-components
面向 Salesforce Lightning Web Components 开发者的技能,涵盖 UI、数据访问、样式、无障碍、性能和测试。它提供架构选择建议与可复用资源,并将后端及部署任务交由其他技能处理。
主要功能
- 01搭建并设计 LWC bundle
- 02选择 LDS、Apex、GraphQL 或 LMS 数据模式
- 03遵循 SLDS 2 和无障碍指南
- 04使用常见组件模式资源
- 05支持 Jest 测试和本地预览
- 06委派后端与部署工作
适用场景
- 01构建读取 Salesforce 记录的组件
- 02创建 Flow 屏幕组件或数据表格
- 03为 LWC bundle 添加 Jest 测试
- 04在本地预览组件改动
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill generating-lwc-components安装后在 Claude Code 中输入/generating-lwc-components确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/apex-controller/LwcController.clsassets/basic-component/basicComponent.cssbasicComponent.htmlbasicComponent.jsbasicComponent.js-meta.xmlassets/datatable-component/datatableComponent.htmldatatableComponent.jsassets/flow-screen-component/flowScreenComponent.cssflowScreenComponent.htmlflowScreenComponent.jsflowScreenComponent.js-meta.xmlassets/form-component/formComponent.htmlformComponent.jsassets/graphql-component/graphqlComponent.htmlgraphqlComponent.jsassets/jest-test/componentName.test.js.exampleassets/message-channel/lmsPublisher.jslmsSubscriber.jsRecordSelected.messageChannel-meta.xmlassets/modal-component/modalComponent.htmlmodalComponent.jsassets/record-picker/recordPicker.htmlrecordPicker.jsassets/state-store/store.jsassets/typescript-component/typescriptComponent.csstypescriptComponent.htmltypescriptComponent.js-meta.xmltypescriptComponent.test.ts.exampletypescriptComponent.tsassets/workspace-api/workspaceComponent.html详细介绍
generating-lwc-components:Lightning Web Components 开发
当用户需要 Lightning Web Components 时使用此技能:LWC 包、wire 模式、Apex/GraphQL 集成、SLDS 2 样式、无障碍访问、性能优化或 Jest 单元测试。
此技能适用的任务
在工作涉及以下内容时使用 generating-lwc-components:
lwc/**/*.js、.html、.css、.js-meta.xml- 组件脚手架搭建和包设计
- wire 服务、Apex 集成、GraphQL 集成
- SLDS 2、深色模式和无障碍访问
- LWC 的 Jest 单元测试
以下情况请交由其他技能处理:
- 首先编写 Apex 控制器或业务逻辑 → generating-apex
- 构建 Flow XML,而不是 LWC 屏幕组件 → generating-flow
- 部署元数据 → deploying-metadata
首先收集所需上下文
询问或推断以下信息:
- 组件用途和目标界面
- 数据源:LDS、Apex、GraphQL、LMS,或通过 Apex 访问的外部系统
- 用户是否需要测试
- 组件是否必须在 Flow、App Builder、Experience Cloud 或仪表板上下文中运行
- 无障碍访问和样式方面的预期
建议的工作流
1. 选择合适的架构
采用 PICKLES 思路:
- 原型设计
- 集成合适的数据源
- 组合组件边界
- 定义交互模型
- 使用平台库
- 优化执行
- 强制落实安全性
2. 选择合适的数据访问模式
| 需求 | 默认模式 |
|---|---|
| 单记录 UI | LDS / getRecord |
| 简单 CRUD 表单 | 基础记录表单组件 |
| 复杂服务器查询 | Apex @AuraEnabled(cacheable=true) |
| 相关图数据 | GraphQL wire adapter |
| 跨 DOM 通信 | Lightning Message Service |
3. 适用时从资源开始
使用提供的资源构建:
- 基本组件包
- 数据表
- 模态框模式
- Flow 屏幕组件
- GraphQL 组件
- LMS 消息通道
- Jest 测试
- 启用 TypeScript 的组件
4. 验证前端质量
检查:
- 无障碍访问
- SLDS 2 / 深色模式兼容性
- 事件契约
- 性能 / 重新渲染安全性
- 必要时的 Jest 覆盖率
5. 移交辅助后端或部署工作
使用:
- generating-apex 处理控制器 / 服务
- deploying-metadata 处理部署
- running-apex-tests 仅用于 Apex 侧测试循环,不用于 Jest
高优先级规则
- 优先使用平台基础组件,不要重复实现控件
- 对响应式只读场景使用
@wire;对于显式操作和 DML 路径,使用命令式调用 - 不要引入无法访问的自定义 UI
- 避免硬编码颜色;使用兼容 SLDS 2 的样式钩子 / 变量
- 避免在
renderedCallback()中造成重新渲染循环 - 保持组件通信模式明确且精简
输出格式
完成时按以下顺序报告:
- 已创建或更新的组件
- 选择的数据访问模式
- 变更的文件
- 无障碍访问 / 样式 / 测试说明
- 后续实施或部署步骤
建议格式:
LWC work: <summary>
Pattern: <wire / apex / graphql / lms / flow-screen>
Files: <paths>
Quality: <a11y, SLDS2, dark mode, Jest>
Next step: <deploy, add controller, or run tests>
本地开发服务器
无需部署即可通过热重载预览 LWC 组件。运行 scripts/local-dev-preview.sh 中的命令,为组件、应用或 Experience Cloud 站点启动本地开发会话。
Local Dev 命令会在首次运行时按需安装。这些命令会启动长期运行的进程,并打开带有实时预览的浏览器。对 .js、.html 和 .css 文件的更改会立即自动重新加载。需要有效的 org 连接才能访问数据和进行 Apex callout。
跨技能集成
| 需求 | 委托给 | 原因 |
|---|---|---|
| Apex 控制器或服务 | generating-apex | 后端逻辑 |
| 嵌入 Flow 屏幕 | generating-flow | 声明式编排 |
| 部署组件包 | deploying-metadata | 组织部署 |
| 创建配套元数据(消息通道、对象) | deploying-metadata | 元数据部署 |
参考文件索引
从这里开始
- references/component-patterns.md — 组件架构模式和组件包设计
- references/slds-design-guide.md — SLDS 2 样式、深色模式、CSS 钩子
- references/lwc-best-practices.md — 高价值规则和反模式
- references/scoring-and-testing.md — 涵盖 8 个类别的 165 分评分标准
- references/jest-testing.md — Jest 单元测试模式和异步渲染辅助工具
- references/slds-blueprints.json — 机器可读的 SLDS 组件蓝图
- references/cli-commands.md — 用于 LWC 开发的 SF CLI 命令
无障碍性 / 性能 / 状态
- references/accessibility-guide.md — WCAG、ARIA、键盘导航模式
- references/performance-guide.md — 延迟加载、防抖、重新渲染安全性
- references/state-management.md — 响应式状态模式和 LMS
- references/template-anti-patterns.md — 应避免的常见 HTML 模板错误
集成 / 高级功能
- references/lms-guide.md — Lightning Message Service 模式
- references/flow-integration-guide.md — Flow 屏幕组件设计
- references/advanced-features.md — Spring '26 功能:TypeScript、lwc:on、GraphQL mutations
- references/async-notification-patterns.md — toast、通知、异步流程
- references/triangle-pattern.md — 父子同级通信三角模式
资源模板
- assets/basic-component/basicComponent.js — 连接服务、错误和加载状态、事件分发
- assets/datatable-component/datatableComponent.js — 带内联编辑的数据表
- assets/flow-screen-component/flowScreenComponent.js — 带输入/输出属性的 Flow 屏幕
- assets/form-component/formComponent.js — 表单验证和 DML 模式
- assets/graphql-component/graphqlComponent.js — 使用基于游标的分页的 GraphQL wire 适配器
- assets/jest-test/componentName.test.js.example — Jest 测试模板(复制并重命名,移除
.example后缀) - assets/message-channel/lmsPublisher.js — LMS 发布者模式
- assets/message-channel/lmsSubscriber.js — LMS 订阅者模式
- assets/modal-component/modalComponent.js — 带焦点陷阱和 ESC 处理的模态框
- assets/record-picker/recordPicker.js — 带搜索功能的记录选择器
- assets/state-store/store.js — 用于跨组件状态的响应式状态存储
- assets/typescript-component/typescriptComponent.ts — 支持 TypeScript 的组件(Spring '26)
- assets/workspace-api/workspaceComponent.js — 用于标签页和焦点管理的工作区 API
- assets/apex-controller/LwcController.cls — 包含
@AuraEnabled(cacheable=true)模式的 Apex 控制器
脚本
- scripts/local-dev-preview.sh — 用于预览组件、应用和站点的本地开发服务器命令
评分指南
| 分数 | 含义 |
|---|---|
| 150+ | 可用于生产环境的 LWC 包 |
| 125–149 | 出色的组件,仅需少量润色 |
| 100–124 | 功能可用,但建议审核 |
| < 100 | 需要大幅改进 |
评论
支持 Markdown