学习目标
完成本单元后,您将能够:
- 列出Lightning Web组件的优点。
- 描述Aura组件和Lightning Web组件如何协同工作。
- 确定何时迁移组件。
一种新的编程模型
您现在可以在两种编程模型中开发Lightning组件:原始模型(Aura组件)和新模型(Lightning Web组件)。就在您掌握了Aura组件的开发之后,我们就提供了Lightning Web组件!为什么,哦为什么,你问?好吧,我们创建了Lightning Web Components模型来与几年前建立原始Aura模型时不存在的Web标准保持一致。
本模块的目的是帮助您利用Aura组件的技能来加快对Lightning Web组件的了解。您将了解两种类型的组件如何在同一个应用程序中协同工作。
什么是闪电Web组件?
Lightning Web Components是W3C的Web Components标准的实现。它支持Web组件在浏览器中运行良好的部分,并且仅添加在Salesforce支持的所有浏览器中工作所需的内容。
闪电Web组件的好处是什么?
- 现代JavaScript
- 在过去的几年中,具有ES6 +和Web标准的JavaScript语言(例如HTML模板,自定义元素和Web组件)已经有了很大的发展。Lightning Web Components为Lightning Component框架带来了现代的JavaScript和Web标准。
- 开发人员的生产力和满意度
- 学习如何更快地构建Lightning Web组件,因为您正在使用标准的JavaScript,HTML和CSS。有专有组件和API,可以更轻松地使用Salesforce,但是您可以通过标准方式访问和使用这些专有组件。
- 使用Lightning Web组件编写更少的代码,并且这些代码更易于阅读,维护和单元测试。
- 通过转到您喜欢的搜索引擎,可以更轻松地找到您的开发问题的答案。使用Web标准可以加快开发和调试时间。
- 使用您喜欢的开发工具,因为Lightning Web组件使用标准的JavaScript并可以与您选择的工具很好地配合使用。
- 代码性能
- 使用Web标准可以提高性能,因为更多功能是由浏览器而不是JavaScript框架本地执行的。根据使用情况的不同,这种改进可能会有所不同,但是我们相信您会为组件的更快的渲染时间感到惊喜。
先决条件
在深入学习此模块之前,请完成Lightning Web Components基础知识模块,该模块为您提供了对新编程模型的出色介绍。
我们假设您熟悉Aura Components编程模型,除了与Lightning Web Components编程模型相比,我们不会解释其功能。如果您不熟悉Aura组件,请从“ Aura组件基础知识”模块开始。
您还需要了解现代JavaScript开发和ES6 JavaScript功能。如果这些术语令人困惑,则可以在Modern JavaScript Development模块中了解它们。该模块涵盖了开发Lightning Web组件所需的所有JavaScript技能。
带扣旅行
学习任何新的编程模型或语言都是一段旅程。当您运行一些新代码时,就像在开阔的道路上驾驶敞篷车时的快感。然后,您更改一行代码,然后得到一个错误。您猛踩刹车,但遇到交通拥堵,拼命寻找下一个出口。记住,这是一个旅程。错误只是暂时的减速,您最终会到达目的地……希望在晚餐时间之前。
我们希望该模块为您的Lightning Web组件之旅做好准备。可以将模块视为打包旅行的行李箱。我们会逐步引导您完成冒险所需的一切。当您到达目的地时,我们不希望您打开行李箱并意识到您忘了打包内衣了!
组件生活在一起
让我们开始看看如何将组件组合在一起。您可以在另一个组件的主体内添加组件。这种组件组成使您可以从更简单的构建块组件中构建复杂的组件。组件组成的概念对于Aura组件和Lightning Web组件都是至关重要的。
我们知道您可能在开发Aura组件上投入了大量时间和精力。因此,我们投入了时间,使您能够在同一应用程序中组合Aura组件和Lightning Web组件。例如,您可以编写一个新的Lightning Web组件并将其添加到包含Aura组件的应用程序中。
除了将Aura组件和Lightning Web组件组合在一起之外,这两种类型的组件还可以与事件进行通信。这是一种健康的共存。
像任何关系一样,有一些规则可以确保所组成的组件一起良好地工作。
如果您要构建一个Lightning Web组件,并且其主体中还需要其他子组件,则这些子组件也必须作为Lightning Web组件构建。请记住,Lightning Web组件不能包含Aura组件。
如果Lightning Web组件是嵌套组件树中最外面的组件,则任何嵌套组件都不能是Aura组件。
两种编程模型一起工作的优点之一是,您可以决定将一个Aura组件迁移到Lightning Web组件,然后您的应用程序继续运行。即使您决定将Lightning Web组件用于新组件,您仍然可以利用对Aura组件的任何现有投资。
另外,您可以在ES6模块中编写新代码,并从Lightning Web组件和Aura组件访问该代码。这种模式为Aura开发人员打开了现代JavaScript开发的大门。
迁移策略
迁移代码很少是一条直线路。Lightning Web Components的编程模型与Aura Components的模型根本不同。将Aura组件迁移到Lightning Web组件不是逐行转换,这是重新访问组件设计的好机会。在迁移Aura组件之前,请评估该组件的属性,接口,结构,模式和数据流。
最容易迁移的组件是仅呈现UI的简单组件。性能至关重要的Aura组件很适合迁移到Lightning Web组件。
通过迁移更大的组件树(组件内的组件)而不是单个组件,可以在性能和开发人员生产率上获得更多收益。但是,迁移一个组件并查看Aura编程模型中的概念如何映射到Lightning Web Components编程模型中的概念是非常有用的学习经验。
迁移一个组件之后,您将可以更好地确定对您和您的组织是否有意义:
- 进行更大的迁移工作。
- 仅将Lightning Web组件用于新组件。
- 暂时使用Aura组件。
选择权取决于您,每个人的选择都不同,具体取决于用例和可用资源。无论您做出什么决定,迁移组件都是一项有价值的学习活动。