课程章节介绍
我们来看一下这一页的内容,讲的是 `@salesforce/community` 这个模块。
在 Lightning Web Components 里,如果你开发的是用在 Experience Builder 网站里的组件——也就是以前说的 Community,现在叫 Experience Cloud 站点——你就可以导入这个模块。它的作用呢,是让组件能访问当前这个网站专属的一些信息。
但有一个重点一定要记住:,这个模块只能在 Experience Builder 页面里用,。如果你把同一个组件放到 Salesforce 内部标准界面,或者手机 App 里,它是跑不起来的。所以它的适用范围非常明确,就是给网站用的。
这个模块会暴露两个属性给我们使用:一个是 `Id`,另一个是 `basePath`。
`Id` 返回的是当前网站的网络 ID。通常在开发的时候,我们会把它传给 Apex 控制器或者 ConnectApi 的方法,用来限定数据范围,让操作只在当前网站内生效,这样就不会跨站点乱拿数据了。
`basePath` 返回的是域名后面跟着的 URL 路径段,比方说你的站点是 `myPartnersite/s`。这个在构建导航链接的时候就非常有用,因为不同网站的路径前缀可能不一样,用了 `basePath` 就能保证生成的链接在所有网站里都正确工作。
最后,页面上的示例展示了一种常见用法:把获取到的网站 Id 作为一个反应变量——也就是那个 `$Id`——传给有线适配器。这样一来,适配器就会根据当前网站的 ID 去抓取跟这个站点相关的 Feed 条目,实现动态地加载当前社区的提要内容。
简单总结一下,`@salesforce/community` 就是给我们打开了通往 Experience Cloud 站点上下文的一扇小窗,让我们能拿到关键的 Id 和路径,方便在组件里做网络范围的查询和导航。但它只存在于网站容器内,这点一定别搞混了。
关键词
LWC
Lightning Web Components
Salesforce