Professional Documents
Culture Documents
CTO @TEXEÏ
@FabienTaillon
www.fabientaillon.com
Lightning Page made of several Components
Lightning Page made of several Components
Before Lightning Data Service
Component 1
Markup JS Controller
Component 2
Component 3
Markup JS Controller
Or worse…
Component 1
Component 2
Component 3
Component 2
Component 3
Name, Address, MySecondField__c Apex Controller 3
Markup JS Controller
3 queries to get almost the same fields
Component 1
Name, Phone, Address, MyField__c Apex Controller 1
Markup JS Controller
Component 2
Component 3
Name, Address, MySecondField__c Apex Controller 3
Markup JS Controller
With Lightning Data Service
Component 1
Markup
Component 2
LDS
Controller
Markup Record Cache
Component 3
Markup
Only 1 query with all the fields !
Component 1
Name, Phone,
Markup
Address, MyField__c
Component 3
Name, Address,
MySecondField__c
Markup
No server call if data already in the cache
Component 1
Name, Phone,
Markup
Address, MyField__c
Component 2
Name, Phone, Email LDS
Markup Controller
Record Cache
Component 3
Name, Address, Name, Phone,
Markup
MySecondField__c Address, Email,
MyField__c,
MySecondField__c
Component 4
Markup
From a code point of view: from this…
Component 1
Component 2
Component 3
Component 2
Component 3
Component 2
Component 3
Component 2
Component 3
Component 2
Component 3
+ TEST CLASS !
Code after: Only markup !
Code after: Only markup !
Better performances, less code !
Markup JS Apex
Without Lightning Data Service
TEST
CLASS
Security
• CRUD
Shared cache
• Component notified only if the field updated is used by the cmp → Less code executed
Id is used, not sObject Type → Same Component can be used for different objects
Where it’s (supposed to be) going
Out of Beta
List Support
…
Madrid 1st June 2017
Q&A