LWC : le futur du développement Salesforce
Lightning Web Components (LWC) est le framework moderne de Salesforce introduit en 2019 pour remplacer progressivement Aura Components. Contrairement à Aura qui utilisait un modèle propriétaire, LWC s'appuie sur les standards Web Components du W3C : Custom Elements, Shadow DOM, et ES Modules. Cette approche apporte des performances supérieures et une expérience de développement plus proche du développement web standard.
En tant que développeur Salesforce, j'ai vécu la transition d'Aura vers LWC. Le gain de performance est significatif : jusqu'à 30-40% de rendu plus rapide selon Salesforce. Mais le vrai avantage est la courbe d'apprentissage : si vous connaissez JavaScript moderne, vous êtes déjà opérationnel sur LWC.
Structure d'un composant LWC
Un composant LWC est un dossier contenant plusieurs fichiers partageant le même nom de base :
📄 Template HTML
myComponent.html — Template avec directives spécifiques : lwc:if, for:each, lwc:spread. Pas de JSX, du HTML enrichi.
⚙️ Contrôleur JavaScript
myComponent.js — Classe ES6+ avec décorateurs @api, @track, @wire. Lifecycle hooks : connectedCallback, renderedCallback.
🎨 Styles CSS
myComponent.css — CSS scopé automatiquement au composant. Variables CSS SLDS disponibles. Pas de préprocesseur nécessaire.
📋 Métadonnées XML
myComponent.js-meta.xml — Configuration : targets (où le composant peut être utilisé), propriétés exposées dans l'App Builder.
Décorateurs LWC essentiels
- @api : Propriétés/méthodes publiques exposées aux composants parents. Réactives (re-render si modifiées).
- @track : Rend réactives les mutations d'objets/arrays (optionnel depuis Winter '20 pour primitives).
- @wire : Connexion réactive aux données Salesforce. Refresh automatique quand les paramètres changent.
Communication entre composants
- Parent → Enfant : Propriétés
@apipassées comme attributs dans le template - Enfant → Parent : CustomEvents avec
this.dispatchEvent(new CustomEvent('myevent', { detail: data })) - Composants non liés : Lightning Message Service (LMS) pour pub/sub
Intégration avec Salesforce
- @wire avec Apex : Appels réactifs à des méthodes Apex
@AuraEnabled(cacheable=true) - LDS (Lightning Data Service) : CRUD sur les records sans Apex via
@wire(getRecord),@wire(getObjectInfo) - SLDS : Salesforce Lightning Design System pour des interfaces natives et accessibles
Traitement local : sécurité garantie
Ce formateur traite vos fichiers LWC entièrement dans votre navigateur. Aucun code n'est envoyé à un serveur — formatez votre code propriétaire Salesforce en toute confidentialité.