я уже знаю одну компанию которая использует React на фронте в место lwc в сложном продукте. Несколько идей преследовалось как я понимаю, банальная разработчиков на реакт тупо больше, можно писать компоненты под себя именно как хочет команада. Единственно где пока простоматриваются под водные камни написание своего апи для бэка и декораторов. А так все это просто стадарт экмаскрпта.
Пытаюсь понять почему бы не используем React вместо LWC ? Есть подводные камни ?
Lightning UI заточен под LWC компоненты. Ты просто собираешь UI из LWC, встраиваешь их куда тебе надо. С реактом такое не проканает. Ты либо делаешь одно большое SPA + Visualforce Page, либо городишь Франкиштейна оборачивая Реакт внутр LWC. Если с первым вариантом (на VF) можно вполне жить. Я сам долго пилил похожие Ангуляр приложения под SF и получалось очень классно. То вот React + LWC я не думаю что будет много желающих попробовать, даже из рядов самих React разрабов. LWC сегодня очень удобный инструмент и очень классно вписывается в Lightning UI. Низкий порог входа. Не нужны никакие локальные компиляторы, dev сервера и прочая инфраструктура. Надобность в других фреймворках отсутствует.
Да что вы на бэкенде зациклились. Это вообще не вопрос, все элементарно делается. Вы лучше скажите куда вы этот реакт на фронте пихать собираетесь? В Lightning UI использовать? Посмотрю как это получится со всеми его ограничениями. А как с development flow + Salesforce?
Единственное что получится это пилить обычное (независимое от Salesforce) React SPA которое будет дергать Salesforce через API (или remoteAction после деплоя) и запихнуть его в Visualforce page. В современных реалиях для SF решение морально устарело. Для какого-нибудь внешнего сервиса или мобильного приложения сгодится.
Хотя сейчас припомнился случай когда я возвращался из Python в SF и начал разбираться с LWC с нуля, я тогда пробовал силы с небошой домашней задачей. https://salesforce-developer.ru/lightnin ... 12616054 Там я пробовал вставить Google Maps в LWC, но получилось сделать это с помощью симбиоза LWC+VF+LWC(для связи с другими компонентами). По такому принципу можно React компоненты делать вместо Google Maps. Но опять же остается вопрос с процессом разработки. Как React пилить локально, компилить и тестить в контексте SF/Lightning. Надо постараться чтобы настроить все по красоте.
Вы лучше скажите куда вы этот реакт на фронте пихать собираетесь?
Как я это понимаю легко. Я тебе еще больше скажу Salesforce собирается добавить возможность нативно подключать разные реакты и т.д. Даже уже вроде бета есть надо будет глянуть.
Я тебе еще больше скажу Salesforce собирается добавить возможность нативно подключать разные реакты и т.д. Даже уже вроде бета есть надо будет глянуть.
Погуглил быстро, но никаких упоминаний не нашел. Все что есть это SLDS под React (обычные реакт компоненты ничего общего с SF не имеющие кроме внешнего вида), да React Native для мобильной разработки (тоже косвенно к SF относится).
А конкретнее? Чего не поделишься информацией? Секрет?
import { ReactElement } from "React"; как то так :)
Это стандарт экмаскрипта модульная система, lwc это по сути открытый фреймворк Там Есть с нюансы бекендом, с секьюрити, в реакте Virtual DOM в lwc Shadow DOM и т.д. Я пользуюсь IDEA не знаю как там VSCode. Но исходники lwc просматриваются легко.
Я знаю что есть одна компания которая так и работает React на фронте а на беки джависты.:)
Прикольно, но есть КУЧА вопросов. Во первых это поддержка стандартных Web Components. Когда ты работаешь с React или любым другим фреймворком это не Web Components. Есть вариант компиляции React компонентов в Web Components но там столько гемора и нетрадиционных для реакт разработки принципов что лучше не связываться. Я пробовал эту тему изучить и использовать, мне как раз хотелось иметь что-то похожее на независимые компоненты как мы имеем это в LWC для обычных сайтов, но дев процесс привращается в боль. React или похожие фреймворки все таки предполагают подход когда ты делаешь мелкие компоненты НО собираешь из них монолит и просто вставляешь его в определенное место в HTML. Web Components это подход именно ближе к LWC когда у тебя независимые компоненты, но они могут подгружать другие. В реакте если тебе надо в разных местах страницы разметить два компонента, которые используют третий, то тебе надо будет собрать два мини бандла с основным и зависимым компонентом. Это значит что зависимый компонент будет два раза загружаться на странице. И это просто пример, а когда у тебя тонна зависимостей в проекте и тебе надо показать на странице 10 разных компонентов, то с каждым из них ты подтянешь весь проект 10 раз. Смысл от реакта тут теряется. Но вот стандартные Web Components это интересная тема, но сложная и спецов по ним уж точно меньше чем по LWC.
А так я ничего из доки интересного не увидел. Там тоже самое что loadScript из статик ресурсов, просто автоматизируют использование Web Components через lwc:external. Собственно Web Component наверное можно и сейчас точно так же использовать без этой штуки просто подгрузив и запустив js script инициализации. Но плюшки думаю скоро подвезут к этому lwc:external + Web Components. Плюс вижу только в том что в интернете умельцы уже насоздавали кучу очень полезных Web Component которые можно просто скачать и использовать. Внедряться в процесс разработки этих самых Web Components против LWC смысла я пока не вижу.
Это значит что зависимый компонент будет два раза загружаться на странице. И это просто пример, а когда у тебя тонна зависимостей в проекте и тебе надо показать на странице 10 разных компонентов, то с каждым из них ты подтянешь весь проект 10 раз. Смысл от реакта тут теряется.
Вот написал и понял затупил. Это не аргумент. Что так же и LWC работает Если расположить два LWC компонента на странице то они явно не будут шарить общую библиотеку зависимостей.
В общем я не противник использования всякого реакта для SF, но мне бы хотелось увидеть как будет построен проект и процесс разработки. Мой небольшой опыт почему-то подсказывает что будет не все так просто.
Это мне и попило крови кастомный лоокап over 300 строк js.
К этому все равно рано или поздно приходишь. Я уже переписал многие стандартные LWC компоненты на кастомные. Тот же Лукап, пиклисты, даже Data Table. В стандартных каждый раз чего то не хватает, что надо клиенту. Зато один раз написал, и спи спокойно. Надо какую-то хотелку клиентскую на стандартный коспонент, пошел, пару if/else закинул в свой компонент и радуешься. При React подходе начало будет сложным - придется переписать библиотеку стандартных LWC компонентов с нуля, зато потом как кирпичики складывай и кастомизируй. В этом плане последующая разработка будет более гибкая. В этом плане я завидую. Пока что мне не нравится в LWC это когда тебе надо быстро а ты уперся в стардартный компонент в котором нет нужной фичи. Это у меня так с Date picker пока война. Справляюсь с клиентскими требованиями, но каждый раз на грани чтобы кастомный не запилить.
И вакансия начали появляется Salesforce Developer c знанием React :)
На какие-нибудь старые проекты. Клиент с которым я давно работал имеел огромный проект Ангуляр под Salesforce, я думаю что такие спецы для него по сей день актуальны. Хотя надеюсь что они там все-таки переписали на LWC как собирались