VIEW OF LIGHTNING AND LIGHTNING WEB COMPONENTS
Updated: May 14, 2020
For the last twenty years or so, Salesforce has been arguably one of the most powerful, customizable and scalable CRMs on the planet. And as with most technology vendors that have stood the test of time, Salesforce also believes in devising new and creative solutions in response to changing market and user needs.
Salesforce came up with Lightning in Winter 2016 and now in 2020 when new Lightning features keep rolling in, migration to Salesforce Lighting from Classic is inevitable.
Salesforce Lightning is an upgrade from Salesforce Classic, which can be described as a step change—and not just an incremental one. It upgraded the look of Classic UI and, more importantly, it upgraded the productivity for the individual user.
Lightning Web Components (LWC) is a programming model for a Lightning Component Framework released in spring 2019, though available since December 2018.
To explain what Lightning Web Components are all about, it’s useful to take a look at the TECH they’re built on top of, and how it came about.
The concept of “components” on the web has existed for a long time. The general idea is to split your UI component into modularized chunks, each of which is self-contained and re-usable. There are many benefits to this approach, some of them being - reduction of duplication in your logic and UI, and the maintenance advantages of building your application out of small, easy to understand pieces of functionality.
Modern web frameworks such as React, Angular and Vue all put some concept of a “component” front and center as core primitives—with great results, and most of the heavy lifting happens at the client side.
It also becomes coherently easy for developer coming full-stack to adapt to Lightning web components framework.
Lightning Web Components align with the modern web standards and have better performance than Aura components.
SOME TECHNICAL FACTS ABOUT LIGHTNING:
The median time to load a lightning page is currently 1.4 seconds.
Salesforce is migrating many core parts of the lightning UI to LWC and investing heavily to improve things going forward.
In Salesforce classic: Server generates HTML and HTML is rendered on client.
In Salesforce Lightning: XMLHttpRequest (XHR), used to transfer data between a web browser and a web server.
So, LEX is not just a UI change. A lot of heavy lifting has been migrated from a server to the client. Therefore, it is sensitive to browser and device performance.
Lightning UI required many XHRs to initially render a page.
Lightning UI is more dynamic and contains more components than Classic. Therefore, pages with many custom fields and/or components are slower to render
Client side rendered applications will ALWAYS be slower than server side rendered pages regardless of the complexity.
LIGHTNING PAGE ARCHITECTURE
Factors effecting Experienced Page Time (EPT) in lightning:
Geographical factors and network latency
Device and client capabilities
Salesforce organization configuration