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

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

39 ответов

60 просмотров

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

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
Геттеры не дают никакой нагрузки, кроме той, что в...

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

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

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

Anyone here suffers from unexplained aural migraines, who would be up for talking for a bit? Doesn't *have* to be aural, but I am not asking about headaches, I mean actual mi...
Martin Rys
55
Я тут за тем, чтобы задать вопрос, так как не знаю ассемблер, учу с/с++. Короче, насколько дорога операция перехода в функцию при ее вызове? Дело в том, что в с++ есть макросы...
Максим Рябцев
12
hello friends. Do you know how can I learn getx? I have a software project that I should deliver it up to 5 weeks later and I need to learn firebase too. I will be thankfull
AmirHossein Razavi
15
Доброе время суток! у меня тут иноды закончились. и понял почему по сути кстит, я периодически очищаю постгрес и сентри контайнер: postgres=# DELETE FROM nodestore_node WHER...
Юсиф Насиров
9
Привет, нужен совет старших товарищей. Есть глобальная переменная var DefaultDataFolder:string; инициализируем DefaultDataFolder:='a:\_OUT\'; есть примитивная процедур...
Max Otto
14
lazarus-3.2.0/gtk, linux патч "имя проекта по умолчанию project1 -> prj" день добрый не нравится "именя проекта по умолчанию" (project1), к.раз приходится переименовывать (н...
livontiy
5
Вопрос. Теоретический. Есть список команд. Команды отправляю в обработку некой функции, по очереди. Разные команды могут давать разные результаты после обработки. В зависимос...
Serjone
7
Коллеги, а в чём сейчас хорошо писать на перле, в смысле ide? Пробовал в идее с плагином, подсветка есть, даже какие-то предупреждения есть, но рефакторинга считай нет. Перене...
Дмитрий Петров
9
Can I forward ports (including the SSH port) between two machines without SSH? I know I can forward SSH server port from machine A (which blocks all requests by firewall) to ...
required optional
5
Всем вечера. Подскажите как лучше сделать. делаю на Д10 Например будет база данных на SQLite. в ней будет много таблиц. более 50шт Типа справочник. Содержать ID Name Id p...
Андрей Т 🐎
10
Карта сайта