Framework DevTools: Vue & Angular — Debugging

Framework DevTools: Vue & Angular React DevTools bukan satu-satunya — Vue dan Angular punya browser extension setara yang penting dikuasai kalau bekerja di stac

Framework DevTools: Vue & Angular

React DevTools bukan satu-satunya — Vue dan Angular punya browser extension setara yang penting dikuasai kalau bekerja di stack tersebut. Semuanya menambah tab baru ke Chrome/Firefox DevTools dengan capability framework-specific.

Vue DevTools

Install Vue.js devtools dari Chrome Web Store (support Vue 2 dan Vue 3). Tab baru muncul: Vue.

Components Tab

Tree komponen mirip React DevTools, tapi dengan informasi khas Vue:

<App>
├── <HeaderBar>
│   └── <UserMenu>
├── <ProductList>
│   ├── <ProductCard> × 10
│   └── <Pagination>
└── <Footer>

Klik komponen → panel kanan tampilkan:

Kamu bisa edit nilai data langsung dari panel — komponen re-render otomatis.

Pinia / Vuex Tab

Kalau pakai store:

Fitur paling powerful: time-travel debugging — list mutation/action dengan timestamp, klik untuk "rollback" state ke titik itu. Mirip Redux DevTools.

Performance Tab

Catat performa render:

  1. Klik Start recording
  2. Interaksi di app
  3. Stop — tampilkan list komponen yang re-render dengan durasi

Berguna untuk menemukan komponen yang re-render berlebihan (biasanya karena prop reference berubah atau v-for tanpa :key stabil).

Routing Tab

Kalau pakai Vue Router: tampilkan route tree, current route params/query, history navigation. Bisa navigate langsung dari panel.

Angular DevTools

Install Angular DevTools dari Chrome Web Store (support Angular 9+). Tab baru: Angular.

Components Tab

Tree komponen + directive. Mirip Vue/React tapi dengan informasi DI (Dependency Injection):

<app-root>
├── <app-header>
├── <app-product-list>
│   └── <app-product-card> × 10
└── <app-footer>

Klik komponen → panel kanan:

Profiler Tab

Inti debugging performa Angular:

  1. Klik Start recording
  2. Interaksi di app
  3. Stop — tampilkan change detection cycles

Setiap "tick" Angular dicatat: komponen mana yang di-check, berapa lama, apakah view update. Ini krusial karena Angular default-nya check SEMUA komponen di setiap tick (Zone.js) — OnPush strategy dan signal (Angular 16+) mengurangi beban.

Look for:

Injector Tree

Angular punya hierarchical injector — service bisa di-provide di root, module, atau component. Tab ini visualkan hierarchy + tampilkan provider mana yang di-inject oleh komponen tertentu.

Berguna saat debug "kenapa service ini punya state berbeda di 2 tempat?" — biasanya karena ada multiple provider di level berbeda.

Change Detection Strategy

Klik komponen → tampilkan strategy:

Perbandingan dengan React DevTools

Fitur React DevTools Vue DevTools Angular DevTools
Component tree
State inspector ✅ (hooks, props, state) ✅ (data, props, setup) ✅ (properties, outputs)
Performance profiler ✅ (render reasons) ✅ (render durations) ✅ (change detection cycles)
Store integration Redux DevTools terpisah Pinia/Vuex built-in NgRx DevTools terpisah
Routing inspector ❌ (pakai Redux DevTools) ✅ built-in ❌ (lihat Router di manual)
DI tree ❌ (React tidak ada DI) ✅ (unik Angular)
Time-travel Redux DevTools Vuex/Pinia built-in NgRx DevTools

Insight:

Workflow Debugging (Generic)

  1. Start with Components tab — lihat tree + state saat reproduce bug
  2. Edit state live — konfirmasi hypothesis tanpa edit code
  3. Record profile — kalau masalah performa, bukan logika
  4. Cek store/state management — kalau bug di data yang shared
  5. Cek routing (kalau relevan)

Tips

  1. Aktifkan Vue/Angular DevTools di production build biasanya dimatikan — debug di dev build atau special preview build
  2. Di Vue, app.config.performance = true memberi measure lebih detail di Performance tab
  3. Di Angular, Augury (tool lama) sudah deprecated — pastikan pakai Angular DevTools official
  4. Framework DevTools tidak bisa debug framework-internal code (virtual DOM diff, dirty-checking loop) — untuk itu, pakai Sources tab biasa

Yang akan kamu pelajari