Я читал:

  • Aura Components, использующая собственную компонентную модель, шаблоны и модульную модель программирования разработки.
  • Веб-компоненты Lightning, созданные на основе прорывов в области веб-стандартов за последние пять лет: веб-компоненты, пользовательские элементы, Shadow DOM и т. д.

Помимо использования SLDS и, возможно, общих имен компонентов, на первый взгляд они выглядят так же по-разному, как Angular 1 и 2.

Может ли кто-нибудь, кто работал с компонентами Aura и Lightning Web Components, участвовать в пилотных проектах? - прокомментируйте, насколько много общего во фреймворке и инструментах и ​​какова кривая обучения для веб-компонентов Lightning?

(Я надеюсь, что это не будет закрыто из-за того, что это вопрос мнения; моя цель - получить некоторое представление о том, насколько легко или сложно будет переключиться.)

15
Keith C 14 Дек 2018 в 22:06

5 ответов

Лучший ответ

Мой взгляд на это.

Я только играл с LWC, так как это было официально объявлено вчера. Я не уверен, что более широкая аудитория получила бы подробный практический опыт в LWC, если бы они не были частью Pilot. Поскольку LWC был анонсирован только вчера, ему еще предстоит пройти долгий путь, прежде чем его можно будет широко адаптировать. Просматривая документацию сегодня утром, Salesforce, похоже, работает над несколькими вещами, поскольку LWC еще не доступен для всех приложений Salesforce Experience, а именно, Lightning Out или автономных приложений (на сегодняшний день).

На мой взгляд, вам не обязательно сразу переключаться — это больше касается выбора платформы, которую вы хотите использовать для настройки вашего пользовательского интерфейса: Lightning Components ИЛИ Lightning Web Components , они оба могут/будут сосуществовать. Но со временем и с рекомендуемым подходом, чтобы идти по пути веб-стандартов, это должно быть LWC.

С точки зрения общности, несмотря на то, что структура пакета веб-компонента Lightning отличается от компонента Lightning, вы все равно найдете разметку и JS повсюду. В первую очередь HTML-шаблон и модули ES.

С точки зрения кривой обучения, я думаю, пока вы хорошо владеете разметкой и JS, кривая обучения не будет такой значительной. Любой, кто работал с Lightning Components, сможет легко связать вещи, происходящие в Lightning Web Components. Однако потребуется значительное обучение, если вы не очень хорошо знакомы с модулями ES6+ JS.

Основываясь на моем «ограниченном опыте», ниже приведены основные выводы при переходе на LWC:

  • Узнайте о веб-компонентах. Совершенствуйте свои навыки работы с HTML и Javascript
  • Начните работу с Salesforce DX (если вы еще этого не сделали)
  • Сделайте VS Code своим выбором IDE. С тем, что я мог видеть в предварительной версии Scratch Spring ’19, вы не можете создать LWC из консоли разработчика.

У меня есть краткий обзор LWC на ​​моя запись в блоге здесь, если это вообще дает какую-либо дополнительную информацию.

10
Jayant Das 14 Дек 2018 в 22:30
Любое понимание расширений VSCode для LWC?
 – 
Keith C
14 Дек 2018 в 22:07
Один уже доступен на торговой площадке VSCode. Я установил его вчера, когда делал тропу.
 – 
Jayant Das
14 Дек 2018 в 22:08
P.S. Хотя у нас нет поддержки консоли разработчика, Playground может служить подходящим инструментом для быстрого макета (войдите в свою организацию spring 19 и посетите /docs/component-library/overview/components. Я играл с этим, это довольно круто, например jsfiddle, но для LWC.
 – 
sfdcfox
14 Дек 2018 в 22:19
1
Небольшое примечание: Игровая площадка не может получить доступ к организациям Salesforce, поэтому она не поддерживает функции, для которых требуются данные из Salesforce. Например, игровая площадка не поддерживает телеграфную службу, методы Apex, модули @salesforce с ограниченной областью действия или компоненты, для которых требуется идентификатор записи, например, форма-записи-молнии, форма-просмотра-записи-молнии и редактирование-записи-молнии. -form. как указано в руководстве разработчика
 – 
codeyinthecloud
14 Дек 2018 в 22:20
Да, я видел это сегодня утром. Наверняка впереди еще много всего, но получить первые практические результаты всегда интересно!
 – 
Jayant Das
14 Дек 2018 в 22:20

LWC следует за «прорывами в веб-стандартах за последние пять лет», что означает, что он напоминает кодирование, подобное React и другим языкам, которые перешли на ES6+. Есть кривая обучения, поскольку все изменилось (к лучшему!).

Однако знакомство с Аурой не так уж и плохо. Хотя все изменилось, они сделали это в основном предсказуемым образом. Например:

<!-- Aura-based -->
<aura:iteration items="{!c.items}" var="item">
  <ui:outputText value="{!item.name}" />
</aura:iteration>

<!-- LWC -->
<template for:each={items} for:item="item">
  <ui-output-text value={item.name}></ui-output-text>
</template>

Как видите, все меняется неуловимо, но незначительно. Названия компонентов меняются в соответствии с предсказуемым шаблоном, вещи перемещаются и т. д., но с документацией в руках вы обнаружите, что это не слишком далеко от того, что вы уже знаете. В основном это небольшие «подводные камни», которым потребуется некоторое время, чтобы закрепиться в вашем мозгу. Я чувствую, что любой опытный разработчик на основе Aura должен быть в состоянии разобраться с большей частью материала за несколько часов/дней (пока что у меня был только один день...).

Вместо поддержки консоли разработчика у нас есть игровая площадка, где мы можем писать код и наблюдать за нашими изменениями практически вживую. Он имеет надежную поддержку DX, позволяет использовать новые типы компонентов, такие как сервисные компоненты (пользовательский интерфейс не требуется), общие библиотеки JavaScript без использования статических ресурсов, более быстрое время загрузки/рендеринга на основе оптимизации на основе стандартов, гораздо лучшую поддержку ES6 с автоматическими полифиллами для IE 11. (поэтому любой код, который вы пишете, будет работать без необходимости обнаружения поддержки) и так далее.

9
sfdcfox 14 Дек 2018 в 22:12

В дополнение к другим ответам, у Salesforce была хорошая документация в руководстве разработчика о миграции.

Модель программирования для веб-компонентов Lightning принципиально отличается от модели для компонентов Aura. Миграция компонента — это не построчное преобразование, а хорошая возможность пересмотреть дизайн вашего компонента. Перед переносом компонента Aura оцените его атрибуты, интерфейсы, структуры, шаблоны и поток данных.

Компоненты, которые легче всего перенести, — это простые компоненты, которые отображают только пользовательский интерфейс. Вы получаете больший прирост производительности и продуктивности разработчиков, перенося более крупные деревья компонентов (компоненты внутри компонентов), а не отдельные компоненты. Тем не менее, это полезный опыт для переноса одного компонента и просмотра того, как концепции в модели программирования Aura сопоставляются с концепциями в модели программирования веб-компонентов Lightning.

После переноса одного компонента вы сможете лучше определить, имеет ли смысл для вас и вашей организации:

  • Предпримите более масштабную миграцию
  • Используйте веб-компоненты Lightning только для новых компонентов
  • Придерживайтесь компонентов Aura на данный момент

Выбор остается за вами и зависит от вариантов использования и доступных ресурсов. Какое бы решение вы ни приняли, миграция компонента является ценным обучающим упражнением.

Узнайте больше о стратегии миграции по адресу: https://yourdomainforspring19prerelaseorg/docs/component-library /documentation/lwc/lwc.migrate_strategy

4
codeyinthecloud 14 Дек 2018 в 22:17

Лично я потратил очень много времени на изучение Ауры. Но это отчасти потому, что у меня не было опыта работы с другими средами веб-разработки, такими как React и Angular.

Перейдя на LWC, я понял, что код проще и понятнее. Я подозреваю, что разработчику Aura проще познакомиться с LWC, чем наоборот.

Когда дело доходит до общности и различий фреймворков, невозможно пройтись по всем за один пост. Итак, позвольте мне сказать так: базовые стеки достаточно похожи, поэтому выполнить миграцию Aura в LWC намного, намного проще, чем выполнить миграцию VisualForce в Aura много лет назад.

Во всяком случае, я недавно создал инструмент для преобразования Aura в LWC. Вы можете проверить это здесь:

https://aura-to-lwc.herokuapp.com

1
FlyGuy352 4 Мар 2021 в 15:52

Если вы хотите сравнить схожие функциональные возможности между приложениями, вы можете взглянуть на новый образец приложения Dreamhouse с поддержкой LWC:

https://github.com/dreamhouseapp/dreamhouse-lwc

А затем оригинальное приложение на основе Aura:

https://github.com/dreamhouseapp/dreamhouse-sfdx

0
joshbirk 17 Дек 2018 в 19:11