转换Salesforce平台的组件
在此步骤中,您将为Node.js应用程序编写的Lightning Web组件转换为Salesforce平台的组件。
复制组件文件
- 副本
app
,sessionDetails
,sessionList
,和speakerCard
组件文件夹从以前项目的/src/client/modules/my
目录。 - 将这四个文件夹粘贴到Salesforce DX项目
/force-app/main/default/lwc
目录中。 - 删除
force-app/main/default/lwc/app/__tests__
文件夹,因为我们将不在此项目中测试组件。
添加组件元数据
为了显示Lightning Experience中的组件,Salesforce平台需要一些称为元数据的额外数据。
-
- 打开Visual Studio代码。
- 按文件>打开。
- 选择您的
lightning-conference
文件夹,然后单击“打开”。 - 在文件资源管理器中导航到目录
force-app/main/default/lwc
。 app.js-meta.xml
在app
目录中创建一个文件。- 将此内容粘贴到文件中:
isExposed
设置为的标志true
公开了要在Lightning App Builder中使用的组件,而该masterLabel
属性使您可以为其指定用户友好名称。通过lightning__AppPage
目标,您可以将该组件放置在Lightning应用程序页面中,就像您之前创建的一样。
-
- 保存
app.js-meta.xml
文件。 sessionDetails.js-meta.xml
在sessionDetails
目录中创建一个文件。- 将此内容粘贴到文件中:
- 保存
- 保存
sessionDetails.js-meta.xml
文件。 - 复制
sessionDetails.js-meta.xml
到sessionList
目录中,并将其重命名为sessionList.js-meta.xml
。 - 复制
speakerCard
目录中的sessionDetails.js-meta.xml并将其重命名为speakerCard.js-meta.xml
。
此时,所有组件目录都应包含一个如下.js-meta.xml
文件:
更新组件命名空间
在上一个项目中,组件放置在my
充当名称空间的文件夹中。在Salesforce平台上,您使用默认名称空间- c
。实际上,这只是意味着您需要用my-
组件标记中的c-
前缀替换组件标签的前缀。
- 在VS Code中,单击“搜索”图标
my-
在搜索字段中输入。- 按Enter键,您应该看到“ 2个文件中有6个结果”(app.html和sessionDetails.html)。
c-
在替换字段中输入。- 单击全部替换图标,然后确认替换。
使用模拟数据测试转换
为了快速测试组件的转换,让我们用模拟数据替换数据检索。您将在下一步中获取Salesforce数据。
-
- 打开
sessionList.js
- 去掉
import { getSessions } from 'data/sessionService';
- 用
connectedCallback
以下代码替换函数中的三行代码。
- 打开
-
- 保存
sessionList.js
- 打开
sessionDetails.js
- 去掉
import { getSession } from 'data/sessionService';
- 替换
this.session = getSession(id);
为以下代码。
- 保存
- 保存
sessionDetails.js
将应用程序组件添加到闪电页面
此时,您的组件已准备好部署到Salesforce平台,并且可以将它们添加到您先前设置的Lightning Page中。
-
- 在VS Code中,右键单击该
force-app
文件夹,然后单击SFDX:将源部署到组织。
- 在VS Code中,右键单击该
您应该在VS Code的输出选项卡中看到以下文本。
- 在Windows上按Ctrl + Shift + P或在macOS上按Cmd + Shift + P来打开命令面板。
- 类型
SFDX
- 选择SFDX:打开Default Org。这将在浏览器中打开您的Salesforce组织。
- 导航到会议应用程序的“议程”选项卡。
- 单击设置图标, 然后选择编辑页面。
- 在左侧导航列表中,向下滚动到“自定义”部分,找到您的Conference App组件并将其拖动到显示为的组件占位符上:在此处添加组件。
- 点击保存。
- 单击返回以返回到应用程序。
单击会话条目,并确保您可以导航到列出的单个会话。
我们在Lightning应用程序中不需要标题,因此让我们调整应用程序的样式和结构。
调整组件的样式和结构
-
- 打开
app.html
- 删除
header
标签及其内容。 <main class="content">
用此代码替换开始标签。
- 打开
-
- 将结束
</main>
标记替换为:
- 将结束
- 保存
app.html
- 右键单击
app.css
资源管理器中的文件,选择“ SFDX:从项目和组织中删除”,然后单击“删除源”。 - 编辑
sessionList.css
,删除:host
规则并保存文件。 - 编辑
sessionDetails.css
,删除:host
规则并保存文件。 - 通过右键单击
force-app
文件夹并单击SFDX:将源部署到组织来重新部署组件。
做得好,您的应用现在看起来更好(您可能需要刷新页面几次以清除缓存)。
在下一步中,将模拟数据替换为真实的Salesforce数据。