- Berbeda dari alat yang sudah ada (
Profiler, Why Did You Render?, React Devtools), alat ini hampir tidak memerlukan perubahan kode dan menyediakan visual cue yang sederhana serta API yang dapat diprogram
- Secara otomatis mendeteksi dan menyorot rendering yang menyebabkan masalah performa, serta menunjukkan dengan tepat komponen mana yang perlu diperbaiki
- Karena ini hanyalah Javascript sederhana, bisa disisipkan di mana saja: tag script, NPM, dan lain-lain
Mengapa React Scan diperlukan
- Mengoptimalkan React bisa jadi rumit
- Secara sengaja, props komponen dibandingkan berdasarkan referensi, bukan nilai. Dengan cara ini, biaya eksekusi rendering dapat dikurangi
- Namun, hal ini juga membuat render yang tidak perlu mudah terjadi tanpa sengaja, sehingga aplikasi bisa melambat
- Bahkan pada aplikasi produksi berskala besar dengan ratusan pengembang, optimasi sering kali tetap sulit (contoh GitHub, Twitter, Instagram).
Keunggulan React Scan dibanding React Devtools
- Keterbatasan React Devtools:
- Dirancang sebagai alat serbaguna, sehingga tidak dapat dengan jelas membedakan render yang tidak perlu dan render yang memang diperlukan.
- Tidak memiliki API yang dapat diprogram, sehingga sulit mengotomatisasi debugging performa.
- Keluhan pribadi terhadap fitur highlight di React Devtools:
- Keterlambatan deteksi rendering: React Devtools memproses rendering secara batch, sehingga komponen yang dirender cepat hanya ditampilkan sekali per detik.
- Masalah pembaruan posisi kotak: Saat melakukan scroll atau mengubah ukuran, posisi kotak tidak diperbarui.
- Kurangnya tampilan jumlah rendering: Tidak menunjukkan berapa kali tiap komponen dirender.
- Sulit membedakan rendering bermasalah: Untuk memeriksa rendering yang lambat atau tidak efisien, pengguna harus memeriksa komponen secara manual.
- Kurang pengalaman pengguna: Menu tersembunyi sehingga merepotkan untuk menyalakan atau mematikan fitur. UI-nya juga tidak dirancang untuk debugging performa.
- Tidak ada API programatik: Tidak bisa digunakan untuk mengotomatisasi debugging atau pekerjaan tingkat lanjut.
- Terbatas pada ekstensi Chrome: Tidak bisa digunakan di mana saja di web dan bergantung pada ekstensi browser.
- Masalah desain yang subjektif: Garis kotaknya terlihat buram dan terasa lambat saat digunakan.
- Pembeda utama React Scan:
- Alat khusus yang dirancang untuk debugging performa, dengan kemampuan mengidentifikasi render yang tidak perlu secara jelas.
- Dapat digunakan di semua platform (web, script, npm) dan mengoptimalkan pengalaman pengembang.
- Dengan roadmap fitur yang ambisius, menawarkan potensi yang melampaui React Devtools.
3 komentar
Mudah dibaca, itu yang bagus.
Contoh penggunaan yang sangat tepat
Mungkin karena demonya aplikasi kecil, tapi kecepatan responsnya terasa cepat.