Considerations & Call APIs from Apex

DEX475 - Refresh Component Data with RefreshView API

📄 第 321 页 🎬 视频课程

课程章节介绍

同学们,咱们今天聊聊两个听起来有点技术,但实际上很好理解的话题:一个是 RefreshView API 的使用注意事项,另一个是当你在 Apex 里调用外部 API 时,怎样才能安全又规范,也就是“命名凭据”的用法。 先看 RefreshView API。简单说,它就是帮你刷新组件视图的工具,但用的时候有几条规矩要记牢。 第一,什么时候用它?当你处理的数据不是直接来自 Lightning Data Service(LDS),而是来自 Aura 组件或者第三方来源的时候,你就需要手动刷新视图。因为 LDS 能自动感知数据变化,但 Aura 或外部数据不会自动通知你的 Lightning Web Component。 第二,不要偷懒把所有组件都注册上,要“仅注册需要参与的组件”。也就是说,只把那些真正需要收到刷新通知的组件加进去,避免不必要的性能开销。 第三,每个组件必须自己注册自己的回调函数。这点很关键——后代组件可不会自动跟着刷新,即使你的父组件注册了,子组件也得单独注册才能收到通知。 第四,容器组件也可以按类似的方式注册,这样就能建立起一棵可控的“刷新树”,让你能按范围刷新,而不是整个页面都动一遍。 好,接下来我们看 Apex 里调用外部 API 的安全姿势——“命名凭据”。 首先要知道,Salesforce 的安全策略很严格,默认情况下,就算是 Apex 也不能随便向任意的外部网站发请求。这是为了防止敏感数据泄露或被恶意利用。 那么想调外部接口怎么办?用“命名凭据”就是一种安全又受控的旁路方案。你可以把“命名凭据”理解成一个提前配置好的通行证,里面定义好了要访问的端点 URL 和身份验证参数(比如用户名密码或者 OAuth 令牌)。这样,你的代码就不用硬编码密码和地址,统一用这个命名凭据的名字去引用,既安全又方便管理。 另外,在做任何 Apex 调用之前,一定要记住这条原则:先从 JavaScript 端尝试使用 Lightning Data Service。因为 LDS 已经帮我们封装好了安全、缓存和刷新机制,能用它解决的,尽量用它。只有当 LDS 不支持你要操作的实体(因为 LDS 只支持 UI API 的一部分对象)时,才退而求其次,用带命名凭据的 Apex 类去调用外部接口。 最后,也是最要紧的提醒:对于所有用到命名凭据的代码,务必要仔细检查,确保不会因为配置不当或者参数拼接问题,造出安全漏洞,比如把内部凭证泄露出去。 总结一下,今天两个要点:RefreshView 要按需注册、各管各回调;调外部 API 首选命名凭据,代码里先试 LDS,不行再用 Apex,而且时刻盯紧安全。这样一来,你的组件刷新高效又稳定,外部调用也合规又安心。

关键词

LWC Lightning Web Components Salesforce