学习目标
完成本单元后,您将能够:
- 将JavaScript从Aura组件迁移到Lightning Web组件。
- 在Aura组件和Lightning Web组件之间共享代码。
使用JavaScript模块
JavaScript是Lightning Web组件的心脏。没有JavaScript,组件就是毫无生气的主要是HTML。当我们看到Aura组件中的属性如何映射到JavaScript属性时,我们可以窥见上一个单元中的Lightning Web组件中的JavaScript文件。现在,我们更深入地研究JavaScript文件。
将JavaScript代码从Aura组件中单独的客户端控制器,帮助程序和渲染器文件迁移到Lightning Web组件中的一个JavaScript文件。
Aura组件中的客户端控制器是对象文字表示形式的JavaScript对象,其中包含名称-值对的映射。好多话。让我们看一下PropertyPaginatorController.js文件中的示例:
Aura组件中JavaScript文件的格式是在将ES6标准(例如JavaScript类和模块)用于功能标准化之前设计的。
Lightning Web组件中的JavaScript文件是ES6模块,因此您使用的是标准JavaScript,而不是Aura组件中使用的专有格式。您编写的JavaScript看起来与您为其他任何现代JavaScript框架编写的JavaScript相似。
这是类似的JavaScript 分页器 闪电网络组件。
我们不会看每一行代码。主要的收获是Lightning Web组件使用标准的JavaScript模块。这是好事!
使用第三方JavaScript库
要在Aura组件或Lightning Web组件中使用第三方JavaScript库,必须将库作为静态资源上载。在两种编程模型中,使用静态资源的语法不同。
在Aura组件中,使用 <ltng:require> 在标记中添加标签以加载静态资源。
resourceName是静态资源的名称。的afterScripts已加载 加载脚本并呈现组件后,将调用客户端控制器中的action。
在Lightning Web组件中,使用JavaScript导入静态资源。
然后,您使用 loadScript 和 loadStyle 加载第三方库。
有关使用导入的库的详细信息,请参阅《 Lightning Web Components开发人员指南》中的“使用第三方JavaScript库”。
动态创建组件
在Aura组件中,您可以使用以下方式在JavaScript中动态创建组件: $ A.createComponent()。在Lightning Web组件中没有动态创建组件的等效项。
这个体系结构的决定是有意的。不在Lightning Web组件中复制此模式的主要原因是Aura组件中的模式导致错误和混乱的代码。
Lightning Web组件中更好的替代方法是为您的组件创建多个HTML模板。组件的render()该方法可以根据组件需求切换模板。这种模式更类似于其他JavaScript框架中使用的路由拆分。