О! Lightning тема оживилась. Наконец-то тестовые задания по Lightning начали давать.
Друзья небольшая просьба - поделитесь информацией. Немного отстал от SF жизни. Даже вчера знакомился с новыми босами в компании и представлял себя, сказал что 3-4 года уже на Python, JS и немножко .Net сижу, а вот сказать что 7 лет SF разрабом был чет не додумался. Даже как-то обидно стало за пропадающий бесценный опыт . Но душей я с вами друзья!
Посему поделитесь пожалуйста последними новостями из мира вашей разработки если она связана с Lightning. Как и что вы сейчас пилите (без конкретики, можно общими словами или на пальцах). Это какие-то отдельные виджеты которые потом пихаются с стандартный интерфейс или целые страницы. Может какую интересную задачку можете подкинуть чтобы немного возбудить интерес и попробовать запилить в свободное время. Как сейчас дела обстоят с использованием сторонних JS фреймворков типа Angular/React из под Lightning?
О! Lightning тема оживилась. Наконец-то тестовые задания по Lightning начали давать. Друзья небольшая просьба - поделитесь информацией. Немного отстал от SF жизни. Даже вчера знакомился с новыми босами в компании и представлял себя, сказал что 3-4 года уже на Python, JS и немножко .Net сижу, а вот сказать что 7 лет SF разрабом был чет не додумался. Даже как-то обидно стало за пропадающий бесценный опыт :( . Но душей я с вами друзья! :) Посему поделитесь пожалуйста последними новостями из мира вашей разработки если она связана с Lightning. Как и что вы сейчас пилите (без конкретики, можно общими словами или на пальцах). Это какие-то отдельные виджеты которые потом пихаются с стандартный интерфейс или целые страницы. Может какую интересную задачку можете подкинуть чтобы немного возбудить интерес и попробовать запилить в свободное время. Как сейчас дела обстоят с использованием сторонних JS фреймворков типа Angular/React из под Lightning?
типичная зада - это кастомизация стандартного интерфейса под какую то конкретную бизнес логику.
все эти задачи решаются через Quick Action buttons (или кастомными кнопками в кастомной секции, например на верху рел листа)c AURA и LWC компонетами.
пользователю нужно выполнить какую то бизнес операцию - кликнул кнопку, поднялось модальное окно, пользователь поработал, окно автоматически или по клику закрылось, родительское окно рефрешнулось если нужно, всплыл Тоаст с уведомлением, и все.
Никакие Single-page application, ни сложных компонентов с ветвистой логикой и множеством views делать не приходилось.
[quote="Dmitry Shnyrev"]какие-то отдельные виджеты которые потом пихаются с стандартный интерфейс или целые страницы[/quote] типичная зада - это кастомизация стандартного интерфейса под какую то конкретную бизнес логику. все эти задачи решаются через Quick Action buttons (или кастомными кнопками в кастомной секции, например на верху рел листа)c AURA и LWC компонетами. пользователю нужно выполнить какую то бизнес операцию - кликнул кнопку, поднялось модальное окно, пользователь поработал, окно автоматически или по клику закрылось, родительское окно рефрешнулось если нужно, всплыл Тоаст с уведомлением, и все. Никакие Single-page application, ни сложных компонентов с ветвистой логикой и множеством views делать не приходилось.
То есть сейчас модалочки с простой логикой в моде? Интересно.
А как дела обстоят с managed packages которые уже под LWC. Это я так полагаю сейчас просто набор биджетов/модалок которые потом (после установки) просто распихиваются по стандартному интерфейсу?
А как вообще дела обстоят с взаимодействием стандартного интерфейса и кода из кастомного компонента? Раньше боролись с iframe c разных поддоменов. Сейчас с этим как? Могу я загрузить свой кастомный код который тупо перересует с помощью JS кусок стандартной страницы?
То есть сейчас модалочки с простой логикой в моде? Интересно. А как дела обстоят с managed packages которые уже под LWC. Это я так полагаю сейчас просто набор биджетов/модалок которые потом (после установки) просто распихиваются по стандартному интерфейсу? А как вообще дела обстоят с взаимодействием стандартного интерфейса и кода из кастомного компонента? Раньше боролись с iframe c разных поддоменов. Сейчас с этим как? Могу я загрузить свой кастомный код который тупо перересует с помощью JS кусок стандартной страницы?
How to use Apex natively with Svelte, Vue, and Preact within LWC
https://developer.salesforce.com/blogs/2020/11/how-to-use-apex-natively-with-svelte-vue-and-preact-within-lwc.html
[quote="Dmitry Shnyrev"]Могу я загрузить свой кастомный код который тупо перересует с помощью JS кусок стандартной страницы?[/quote] How to use Apex natively with Svelte, Vue, and Preact within LWC https://developer.salesforce.com/blogs/2020/11/how-to-use-apex-natively-with-svelte-vue-and-preact-within-lwc.html
Вот кстати просветите, есть ли смысл заморачиваться с впихиванием одного фреймворка в другой?
[quote="Eric"][quote="Dmitry Shnyrev"]Могу я загрузить свой кастомный код который тупо перересует с помощью JS кусок стандартной страницы?[/quote] How to use Apex natively with Svelte, Vue, and Preact within LWC https://developer.salesforce.com/blogs/2020/11/how-to-use-apex-natively-with-svelte-vue-and-preact-within-lwc.html[/quote] Вот кстати просветите, есть ли смысл заморачиваться с впихиванием одного фреймворка в другой?
Вот кстати просветите, есть ли смысл заморачиваться с впихиванием одного фреймворка в другой?
Согласен, хороший вопрос
Наверное LWC уже дорос до уровня когда такой вопрос возникает
[quote="Maxim Elets"]Вот кстати просветите, есть ли смысл заморачиваться с впихиванием одного фреймворка в другой?[/quote] Согласен, хороший вопрос :) Наверное LWC уже дорос до уровня когда такой вопрос возникает :)
Наверное LWC уже дорос до уровня когда такой вопрос возникает
LWC дорос до уровня, когда почти всего хватает, а если чего-то не хватает, то это не пропустит Locker service
[quote="Dmitry Shnyrev"]Наверное LWC уже дорос до уровня когда такой вопрос возникает [/quote] LWC дорос до уровня, когда почти всего хватает, а если чего-то не хватает, то это не пропустит Locker service :)
это не пропустит Locker service
Это был бы мой второй вопрос :)
[quote="Developer"]это не пропустит Locker service[/quote] Это был бы мой второй вопрос :)
LWC дорос до уровня, когда почти всего хватает, а если чего-то не хватает, то это не пропустит Locker service
Его можно и обойти при большом желании
Например у меня был код, который показывает debug log в виде дерева. Для этого генерил html код с onClick calback. Пришлось скрестить ужа и ежа.
[quote="Developer"]LWC дорос до уровня, когда почти всего хватает, а если чего-то не хватает, то это не пропустит Locker service [/quote] Его можно и обойти при большом желании Например у меня был код, который показывает debug log в виде дерева. Для этого генерил html код с onClick calback. Пришлось скрестить ужа и ежа.
Его можно и обойти при большом желании
Например у меня был код, который показывает debug log в виде дерева. Для этого генерил html код с onClick calback. Пришлось скрестить ужа и ежа.
И как? Вынести из контекста Lightning в какой-нибудь iframe?
В самом lightning его не обойти. Он пропускает код через secure wrappers и кидает js exceptions всегда, когда что-то ему не нравится или что-то пока не поддерживается в нём. Даже банально многие стандартные js объекты с ним не создать.
[quote="wilder"]Его можно и обойти при большом желании Например у меня был код, который показывает debug log в виде дерева. Для этого генерил html код с onClick calback. Пришлось скрестить ужа и ежа.[/quote] И как? Вынести из контекста Lightning в какой-нибудь iframe? В самом lightning его не обойти. Он пропускает код через secure wrappers и кидает js exceptions всегда, когда что-то ему не нравится или что-то пока не поддерживается в нём. Даже банально многие стандартные js объекты с ним не создать.
И как? Вынести из контекста Lightning в какой-нибудь iframe?
Не не надо никаких iframe
[quote="Developer"]И как? Вынести из контекста Lightning в какой-нибудь iframe?[/quote] Не не надо никаких iframe
Не не надо никаких iframe
А что нужно?
[quote="wilder"]Не не надо никаких iframe[/quote] А что нужно? :)
Не не надо никаких iframe
А что нужно? :)
Для начала нужно понять когда в Lwc используется locker а когда нет.
[quote="Developer"][quote="wilder"]Не не надо никаких iframe[/quote] А что нужно? :)[/quote] Для начала нужно понять когда в Lwc используется locker а когда нет.
Для начала нужно понять когда в Lwc используется locker а когда нет.
Если уже пошёл такой разговор, а выше было про "при большом желании", то можно сразу к делу.
Есть, к примеру, простейшая компонента с обычным input полем типа file, для загрузки файлов. "Когда" нужно создавать инстанс DataTransfer для манипуляций с FileList, чтобы locker service не мешал?
[quote="wilder"]Для начала нужно понять когда в Lwc используется locker а когда нет.[/quote] Если уже пошёл такой разговор, а выше было про "при большом желании", то можно сразу к делу. Есть, к примеру, простейшая компонента с обычным input полем типа file, для загрузки файлов. "Когда" нужно создавать инстанс DataTransfer для манипуляций с FileList, чтобы locker service не мешал? :)
Если не использовать LightningElement, то Locker не бужет мешать. А вот как это сделать нужно подумать:)
Если не использовать LightningElement, то Locker не бужет мешать. А вот как это сделать нужно подумать:)
Если не использовать LightningElement, то Locker не бужет мешать. А вот как это сделать нужно подумать:)
Ну тут вопрос, что нужно использовать, т.к. делаются lwc компоненты, которые нужно потом добавлять в коммьюнити через builder и которым нужно общаться между собой без всяких костылей
[quote="wilder"]Если [b]не[/b] использовать LightningElement, то Locker не бужет мешать. А вот как это сделать нужно подумать:)[/quote] Ну тут вопрос, что [b]нужно[/b] использовать, т.к. делаются lwc компоненты, которые нужно потом добавлять в коммьюнити через builder и которым нужно общаться между собой без всяких костылей :)
Если не использовать LightningElement, то Locker не бужет мешать. А вот как это сделать нужно подумать:)
Ну тут вопрос, что нужно использовать, т.к. делаются lwc компоненты, которые нужно потом добавлять в коммьюнити через builder и которым нужно общаться между собой без всяких костылей :)
Можно одновременно и использовать и не использовать. Сделай отладку и посмотри когда внутри класса LightningElement не используется Locker.
Они(Salesforce) похоже сами не в восторге от своего Locker. Видел из код который генерит дерево, у них там ест отдельный метод deepClone.
[quote="Developer"][quote="wilder"]Если [b]не[/b] использовать LightningElement, то Locker не бужет мешать. А вот как это сделать нужно подумать:)[/quote] Ну тут вопрос, что [b]нужно[/b] использовать, т.к. делаются lwc компоненты, которые нужно потом добавлять в коммьюнити через builder и которым нужно общаться между собой без всяких костылей :)[/quote] Можно одновременно и использовать и не использовать. Сделай отладку и посмотри когда внутри класса LightningElement не используется Locker. Они(Salesforce) похоже сами не в восторге от своего Locker. Видел из код который генерит дерево, у них там ест отдельный метод deepClone.
Если не использовать LightningElement, то Locker не бужет мешать. А вот как это сделать нужно подумать:)
Ну тут вопрос, что нужно использовать, т.к. делаются lwc компоненты, которые нужно потом добавлять в коммьюнити через builder и которым нужно общаться между собой без всяких костылей :)
Можно одновременно и использовать и не использовать. Сделай отладку и посмотри когда внутри класса LightningElement не используется Locker.
Они(Salesforce) похоже сами не в восторге от своего Locker. Видел из код который генерит дерево, у них там ест отдельный метод deepClone.
А уж как девелоперы не в восторге
PS: Например приколы с localStorage.
Они взяли намутили свою обертку, которая каким-то боком понимает контекст и каким-то хером этот же контекст теряет.
И вот можно добавить через их враппер что-то в local storage, а через какое-то время, увидеть что в этом local storage уже 300 одинаковых записей, а метод localStorage.clear() не чистит локал сторадж, а чистит только то что сф воспринимает как внутри своего контекста, а если активно работать и выгружать кучу данных, то встретить такую ошибку очень легко.
[quote="wilder"][quote="Developer"][quote="wilder"]Если [b]не[/b] использовать LightningElement, то Locker не бужет мешать. А вот как это сделать нужно подумать:)[/quote] Ну тут вопрос, что [b]нужно[/b] использовать, т.к. делаются lwc компоненты, которые нужно потом добавлять в коммьюнити через builder и которым нужно общаться между собой без всяких костылей :)[/quote] Можно одновременно и использовать и не использовать. Сделай отладку и посмотри когда внутри класса LightningElement не используется Locker. Они(Salesforce) похоже сами не в восторге от своего Locker. Видел из код который генерит дерево, у них там ест отдельный метод deepClone.[/quote] А уж как девелоперы не в восторге :D :D :D PS: Например приколы с localStorage. Они взяли намутили свою обертку, которая каким-то боком понимает контекст и каким-то хером этот же контекст теряет. И вот можно добавить через их враппер что-то в local storage, а через какое-то время, увидеть что в этом local storage уже 300 одинаковых записей, а метод localStorage.clear() не чистит локал сторадж, а чистит только то что сф воспринимает как внутри своего контекста, а если активно работать и выгружать кучу данных, то встретить такую ошибку очень легко.