Salesforce 组件质量标准
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_fccf428b/salesforce-component-standards。
技能介绍
需要被规范的组件开发场景
在 Salesforce 开发里,LWC、Aura 和 Visualforce 组件各有各的写法,可实际写代码或 review 的时候,很容易忽略数据访问选错模式、安全规则没守住、样式硬编码破坏 SLDS、可访问性缺漏这些细节——不是不知道要规范,而是没有一份统一的检查清单把这些点串起来,导致不同人写的组件质量参差不齐。
技能如何拆解各组件的标准
这个技能把三类组件的关键要求拆成了可逐条对照的检查项:
- LWC 部分:先明确不同数据访问场景的对应模式,比如用
@wire(getRecord)做响应式单记录读取、复杂查询用cacheable=true的@wire方法,避免在connectedCallback写副作用;安全上禁止用innerHTML塞用户数据,必须用模板绑定{expression};样式不能硬编码颜色,得用var(--slds-*)语义 token,还要测深浅模式;可访问性要满足 WCAG 2.1 AA,比如图标按钮加aria-label,模态框做好焦点管理;组件通信按方向选@api、CustomEvent或 LMS,别碰document.querySelector;有交互或调 Apex 的组件得写 Jest 测试,用@salesforce/sfdx-lwc-jest做 mock。 - Aura 部分:先划清和 LWC 的边界——新组件一律用 LWC,只有 Aura 专属场景(比如继承
force:appPage)才用 Aura;安全上@AuraEnabled方法必须显式加with sharing并手动做 CRUD/FLS 检查,不能用{!v.something}直接输出未转义的用户数据;事件设计优先组件事件,应用事件只在组件事件覆盖不到时用,混合栈用 LMS 解耦。 - Visualforce 部分:XSS 防护上
escape="false"对用户数据是禁区,富文本得服务端白名单过滤;CSRF 防护必须用<apex:form>,别写裸<form>;SOQL 注入要靠绑定变量,别拼 URL 参数;视图状态要控制在 135KB 内,计算用的字段设transient,只读页加readonly="true";自定义控制器要手动做 FLS 检查,别依赖标准控制器的自动校验。
适用边界与注意点
这套标准不是万能的:如果是全新组件,优先走 LWC,Aura 只在对接老托管包、用 Aura 专属事件时才考虑;Visualforce 里的丰富文本渲染得服务端做白名单,不能图省事关掉转义。另外,规则里的“必须”“禁止”是硬约束,但像 Jest 测试,只针对有用户交互或调 Apex 的组件,别给纯展示组件硬加测试——核心是把“对的写法”和“容易踩的坑”都摆出来,让写代码或 review 的人能逐条对照,不用自己再翻零散的文档。
使用场景
- 编写或修改 LWC 组件时,按数据访问、安全、SLDS 样式与可访问性清单逐项自查
- 审查同事提交的 Aura 组件 PR 时,核对 @AuraEnabled 方法的 sharing 声明与事件设计
- 开发 Visualforce 页面时,用 XSS、CSRF、View State 检查清单确认安全要求
- 把旧 Aura 组件迁移为 LWC 前,对照标准确认迁移范围与通信改造方式
适合人员
- 正在 Salesforce org 中开发 LWC 组件的工程师,需要按统一规范自查编码质量
- 负责组件代码审查的技术负责人,需要用统一标准判断代码能否合入
- 维护遗留 Visualforce 页面的开发者,需要排查 XSS、CSRF 等安全隐患
- 计划将 Aura 组件迁移到 LWC 的开发者,需要明确迁移边界与事件改造方案