169 похожих чатов

Ребята как можно оптимизировать работу компонента ?

39 ответов

53 просмотра

А что случилось?

Zhadiger- Автор вопроса
Oleg Safonov
А что случилось?

мне такой вопрос задали

Zhadiger
мне такой вопрос задали

Скажите, что не знаете)

Zhadiger- Автор вопроса
Oleg Safonov
Скажите, что не знаете)

так ответа нет что ли😁

Нужно начать с измерений, без них вы не сможете узнать, что оптимизация сработала. В зависимости от того, где именно проблема, есть разные пути оптимизации. Обычно нужно либо сократить количество вызовов CD, либо ускорить сам CD, для первого подходит OnPush и дальше, если не помогло, вынос частых событий из зоны. Для второго - проверить что именно внутри CD тормозит, геттеры, пайпы, что-то еще. Мемоизировать или переписать логику

обычно не должно лагать, если не юзать геттеры для получения данных в шаблонах и использовать OnPush в ресурсоемких местах. Можно локально выносить часть компоненты в новую и делать ее OnPush, чтобы не делать всю компоненту OnPush. Через профайлер хрома можно узнать что нужно оптимизировать

Илья Ярошевич
Геттеры дают сильную нагрузку?

угу, иногда до полного зависания приложения

Oleg Safonov
Неправда

да ну неужели, могут быть ситуации когда что-то вроде ngIf="isActive()" и isActive постоянно заставляет пересоздаваться компонент меняясь как flip-flop. У меня с каким-то редактором WYSYWIG было

Roman Zigzag
да ну неужели, могут быть ситуации когда что-то вр...

Тут нет геттера, тут вызов метода и хреновый компонент, скорее всего

Roman Zigzag
а геттер это не метод ?

Метод, но не каждый метод - геттер

Oleg Safonov
Метод, но не каждый метод - геттер

так я тебе написал что мой метод геттер, как ты не зная его реализации решил что он не геттер ?

Oleg Safonov
Я вижу скобки

а ты думаешь ангуляр обрабатывает как-то по другому если это геттер или метод ?

Roman Zigzag
а ты думаешь ангуляр обрабатывает как-то по другом...

Нет, так же. Но один плохой пример не значит, что нельзя пользоваться геттерами

Oleg Safonov
Нет, так же. Но один плохой пример не значит, что ...

ими нельзя пользоваться в шаблонах, те кто пользуются плохо знают ангуляр либо мало опыта

Roman Zigzag
да ну неужели, могут быть ситуации когда что-то вр...

а если isActive всегда тру возвращает во время жизни компонента то в чём тут может быть проблема?

как? пример пожалуйста

Может из полей?

Evgheni Чернявский
как? пример пожалуйста

ну вот например у тебя есть геттер isUserActive в сервисе. Потом юзер перестает быть active, а метод по прежнему возвращает true, потому что не было change detection

Evgheni Чернявский
как? пример пожалуйста

У него геттер видимо возвращает что то не зависимое от input'ов

Oleg Safonov
Может из полей?

а поля не переменные ?

Roman Zigzag
ну вот например у тебя есть геттер isUserActive в ...

а если isUserActive заменить на поле то всё станет збс?

Roman Zigzag
конечно

вопросов больше не имею

Roman Zigzag
угу, иногда до полного зависания приложения

эм... смотря что вы в этот геттер напихали

Ilya Chursin
эм... смотря что вы в этот геттер напихали

ну с таким подходом можно вообще на все забить, и просто говорить джунам "делай правильно" без уточнения

Roman Zigzag
ну с таким подходом можно вообще на все забить, и ...

ну если вы в геттер положили итерацию по массиву с миллионом значений, то фликерить начнет заметно сразу

Илья Ярошевич
Геттеры дают сильную нагрузку?

Геттеры не дают никакой нагрузки, кроме той, что внутри них. Если вы там не аллоцируете объекты в памяти и не итерируетесь по огромным массивам, то не заметите разницы

Maxim Afanasev
Геттеры не дают никакой нагрузки, кроме той, что в...

а то что компонент перерендеривается - это "никакая нагрузка" ?

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
62
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Не ну фпц - это уже просто троллинг какой-то. Элементарный код нельзя собрать. ЧЯДНТ? program Project1; {$mode delphi} uses SysUtils, Classes, Generics.Collections; var...
Peter
4
а где есть mysql cloud кроме яндекс-клауд?
Oleg Nosov
13
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
13
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
8
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Кстати а покупал кто-нибудь ЭЦП для подписи кода? А то у меня на некоторых компах и ОС иногда SmartScreen винды программу за вирус принимал. Если купить такую ЭЦП и подписыват...
Дмитрий Завгородний
15
Карта сайта