Latihan 1: Framework DevTools: Vue & Angular — Debugging
Latihan 1 dari materi Framework DevTools: Vue & Angular di Debugging — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Tulis tiga function yang meniru kerja framework DevTools.
findComponentByState(tree, predicate): tree adalah pohon komponen { name, state, children? }, dan predicate(state) mengembalikan true kalau state-nya cocok. Telusuri dari akar, lalu kembalikan array nama dari akar sampai komponen pertama yang cocok, seperti memilih komponen di tab Components. Kalau gak ada yang cocok, kembalikan array kosong [].
Ada juga cek tambahan: analyzeChangeDetection dengan satu cycle yang input-nya berubah harus memberi recommendation"OK", dan findComponentByState yang gak menemukan apa-apa harus mengembalikan array dengan panjang 0.
Hint
Tiga function ini meniru tiga hal: tab Components (cari komponen di pohon), Profiler (hitung pengecekan sia-sia), dan nama extension resmi. Pohonnya ditelusuri rekursif sambil membawa jalur dari akar.
findComponentByState: function bantu search(node, path) yang menambah node.name ke path, mengembalikan path kalau predicate(node.state) true, lalu mencoba tiap anak dan berhenti di hasil pertama; hasil akhirnya diberi || [] untuk kasus gak ketemu. analyzeChangeDetection: filter untuk menghitung, reduce untuk rata-rata, lalu bandingkan dengan cycles.length / 2. pickDevTools: object yang memetakan nama framework ke nama extension.