Angular DevTools (ранее Augury) — это официальное расширение для отладки Angular-приложений, разработанное командой Angular. Вот подробный гайд по его использованию:
Установка и базовый функционал
-
Установка:
-
Активация:
- Открыть DevTools (F12 или Ctrl+Shift+I)
- Перейти на вкладку "Angular"
// Проверка доступности DevTools в консоли:
console.log('Angular DevTools доступны:', window.ng !== undefined);
Основные вкладки инструмента
1. Components
Дерево компонентов с иерархией и свойствами:
- Просмотр Input/Output свойств
- Изменение значений в реальном времени
- Поиск по имени компонента
<!-- Пример отображения свойств -->
<app-user [user]="currentUser" (selected)="onSelect()"></app-user>
В DevTools будет отображено:
- Input:
user: {name: "John", age: 30}
- Output:
selected: EventEmitter
2. Profiler
Запись и анализ производительности:
- Нажмите "Start recording"
- Взаимодействуйте с приложением
- Нажмите "Stop recording"
- Анализируйте:
- Время Change Detection
- Компоненты с проблемами производительности
3. Injector Graph
Визуализация DI-дерева:
- Просмотр предоставленных сервисов
- Поиск circular dependencies
- Анализ scope сервисов
Продвинутые техники
Отладка изменений
- Выделите компонент в DevTools
- Включите "Highlight updates"
- Наблюдайте за подсветкой изменений
Доступ к инстансу компонента
// В консоли DevTools:
const component = ng.getComponent($0);
console.log(component.someProperty);
component.someMethod();
Изменение состояния
- Найдите компонент в дереве
- Измените значение свойства
- Нажмите Enter для применения
Практические примеры
Пример 1: Отладка бага
- Откройте проблемный компонент
- Проверьте:
- Состояние Input-свойств
- Вызовы жизненного цикла
- Привязанные обработчики
Пример 2: Анализ производительности
- Запустите Profiler
- Выполните медленную операцию
- Найдите компоненты с долгим рендерингом
Пример 3: Поиск memory leak
- Сделайте несколько навигаций
- Проверьте оставшиеся компоненты
- Анализируйте подписки
Полезные советы
-
Горячие клавиши:
Ctrl+P
в DevTools → быстрый переход к компоненту
$0
в консоли → доступ к выделенному элементу
-
Интеграция с IDE:
- Клик по имени файла компонента → открытие в редакторе
-
Для библиотек:
- Работает с Angular Material, NGXS, NGRX
- Показывает компоненты библиотек в дереве
Резюмируем
Angular DevTools — незаменимый инструмент для разработчика Angular, предоставляющий глубокую интроспекцию приложения через компонентное дерево, профилировщик и граф зависимостей. Для эффективной отладки используйте комбинацию визуального анализа и консольных команд, особенно при работе со сложными состояниями и проблемами производительности.