Готовы ли вы окунуться в захватывающий мир разработки Salesforce, в частности в Aura LWC (веб-компоненты Lightning)? Если вы хотите обеспечить совместимость и максимально эффективно использовать эту мощную платформу, вы попали по адресу! В этой статье блога мы рассмотрим различные методы достижения совместимости с Aura LWC, используя разговорный язык и попутно предоставляя практические примеры кода. Итак, начнём!
-
Понимание различий: Aura и LWC
Прежде чем углубляться в аспекты совместимости, важно понять фундаментальные различия между Aura и LWC. Aura — это платформа JavaScript, разработанная Salesforce, а LWC — более современная и легкая платформа, обеспечивающая повышенную производительность и гибкость. Поняв нюансы каждого из них, вы сможете лучше обеспечить совместимость во время миграции. -
Используйте уровень совместимости
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
}
}
}
- Используйте совместимость 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);
}
}
- Используйте 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>
- Постепенный рефакторинг компонентов Aura в LWC
Чтобы добиться полной совместимости с LWC, рассмотрите возможность постепенного рефакторинга компонентов Aura в веб-компоненты Lightning. Такой подход позволяет вам воспользоваться преимуществами производительности LWC, постепенно модернизируя вашу кодовую базу. Начните с определения небольших, автономных компонентов, которые можно легко реорганизовать, и итеративно проложите путь к решению, полностью основанному на LWC.