课程章节介绍
同学们,我们接着刚才的内容往下讲。当你发现 Lightning-Record-Edit-Form 或者 Record-View-Form 这些标准表单组件已经满足不了你的业务需求时,不要着急,我们其实有更灵活的办法。
你可以把 Salesforce 提供的有线服务,也就是 Wire Service,和基础组件结合起来,这样就能完全自己掌控 UI 的设计和行为了。
首先,输入组件,比如 lightning-input、lightning-combobox 这些,它们本身就带着很完善的数据校验功能。你加了 required 属性,或者指定了 pattern、min、max,它们会自动帮你在页面上显示出错提示,不需要你额外写一大段校验逻辑。
其次,还有一些嵌入式组件,比如输出邮件、电话号码的组件,它们会根据用户的语言和地区设置,自动生成符合 HTML 语义的链接——比如 mailto 链接、tel 链接,甚至还能直接跟 Google 地图集成,帮你在地图上显示地址,这些都不用你操心。
举个例子,我们要做一个自定义的“姓名”表单,既需要从记录里取姓名字段的值,又需要从称呼这个下拉列表里取可选项。那就可以同时用上两个 Wire Adapter:一个用 getRecord 适配器拿到字段当前的值,另一个用 getPicklistValues 适配器拿到称呼字段的所有可选项。然后自己写一个简单的 getter 函数,把 picklist 值的对象数组,转换成 lightning-input-name 组件需要的 options 格式就行了。
再比如地址的展示,我们可以用 lightning-formatted-address 来规范地显示地址,再用 lightning-map 的一个静态地图模式,把 getRecord 拿到的街道、城市、省、邮编、国家这五个字段拼接起来,生成一个 Google 地图的缩略图预览。这样用户就能直观地看到地址在地图上的位置。
这种开发模式最大的好处就是:布局完全由你说了算,你想用什么组件就用什么组件,不用再受标准 form 的限制。无论是字段的排列顺序、呈现样式,还是交互逻辑,你都有绝对的控制权。所以,当你觉得标准表单不够用的时候,就大胆地拿起 Wire Service 和基础组件,去打造真正符合需求的界面吧。
关键词
LWC
Lightning Web Components
Salesforce