Откройте для себя волшебство: добиться совместимости с Aura LWC стало проще

Готовы ли вы окунуться в захватывающий мир разработки Salesforce, в частности в Aura LWC (веб-компоненты Lightning)? Если вы хотите обеспечить совместимость и максимально эффективно использовать эту мощную платформу, вы попали по адресу! В этой статье блога мы рассмотрим различные методы достижения совместимости с Aura LWC, используя разговорный язык и попутно предоставляя практические примеры кода. Итак, начнём!

  1. Понимание различий: Aura и LWC
    Прежде чем углубляться в аспекты совместимости, важно понять фундаментальные различия между Aura и LWC. Aura — это платформа JavaScript, разработанная Salesforce, а LWC — более современная и легкая платформа, обеспечивающая повышенную производительность и гибкость. Поняв нюансы каждого из них, вы сможете лучше обеспечить совместимость во время миграции.

  2. Используйте уровень совместимости
    Salesforce предоставляет уровень совместимости, который позволяет запускать компоненты Aura в LWC. Этот уровень действует как мост, позволяя постепенно переносить компоненты Aura на веб-компоненты Lightning, сохраняя при этом совместимость с существующим кодом на основе Aura. Используя этот уровень, вы можете постепенно переносить и обновлять свою кодовую базу.

Вот пример использования уровня совместимости:

import { LightningElement, api } from 'lwc';
import legacyAuraComponent from 'c/legacyAuraComponent';
export default class MyLwcComponent extends LightningElement {
    @api myProperty;
    renderedCallback() {
        if (this.myProperty) {
            const auraComponent = new legacyAuraComponent();
            // Use the Aura component as needed
        }
    }
}
  1. Используйте совместимость Aura
    Совместимость Aura LWC также позволяет беспрепятственно взаимодействовать между компонентами Aura и LWC. Вы можете использовать модуль lightning/messageServiceдля отправки и получения сообщений между компонентами Aura и LWC. Такой подход позволяет постепенно переходить от Aura к LWC, сохраняя при этом совместимость.

Вот пример отправки сообщения от компонента LWC компоненту Aura:

import { LightningElement } from 'lwc';
import { publish, MessageContext } from 'lightning/messageService';
import MY_MESSAGE_CHANNEL from '@salesforce/messageChannel/MyMessageChannel__c';
export default class MyLwcComponent extends LightningElement {
    // Inject the message context
    @wire(MessageContext)
    messageContext;
    handleClick() {
        const message = {
            someProperty: 'Hello from LWC!'
        };
        publish(this.messageContext, MY_MESSAGE_CHANNEL, message);
    }
}
  1. Используйте Lightning Data Service (LDS)
    Если вы работаете с компонентами Aura, которые в значительной степени полагаются на контроллеры Apex и платформу Force.com, рассмотрите возможность использования Lightning Data Service (LDS). LDS предоставляет стандартный способ чтения, создания, обновления и удаления записей в Salesforce, сокращая объем пользовательского кода, который вам нужно написать. Используя LDS, вы можете улучшить совместимость и упростить миграцию Aura LWC.
<aura:component>
    <force:recordData
        recordId="{!v.recordId}"
        targetFields="{!v.simpleRecord}"
        targetError="{!v.recordError}"
        targetRecord="{!v.record}"
    />
    <!-- Rest of the component -->
</aura:component>
  1. Постепенный рефакторинг компонентов Aura в LWC
    Чтобы добиться полной совместимости с LWC, рассмотрите возможность постепенного рефакторинга компонентов Aura в веб-компоненты Lightning. Такой подход позволяет вам воспользоваться преимуществами производительности LWC, постепенно модернизируя вашу кодовую базу. Начните с определения небольших, автономных компонентов, которые можно легко реорганизовать, и итеративно проложите путь к решению, полностью основанному на LWC.