2 poin oleh GN⁺ 2024-10-01 | 1 komentar | Bagikan ke WhatsApp

Web Components Tidak Masalah

  • Komunitas pengembangan web sering memperdebatkan web components
  • Ryan Carniato menulis artikel berjudul "Web Components Are Not the Future", dan Cory LaViska menanggapinya dengan artikel "Web Components Are Not the Future — They’re the Present"
  • Penulis berusaha menyelesaikan perdebatan ini secara damai

Performa

  • Web components berbasis pada Custom Elements, sehingga semua antarmuka ditangani melalui DOM
  • Meminimalkan node DOM adalah inti dari optimasi performa
  • Namun, performa bukanlah segalanya; faktor lain seperti maintainability, keamanan, kegunaan, dan aksesibilitas juga perlu dipertimbangkan
  • Misalnya, tidak merender atribut aria-* dapat meningkatkan performa, tetapi atribut tersebut tetap wajib untuk aksesibilitas
  • Optimasi performa itu penting, tetapi dalam praktiknya masalah yang lebih sederhana seperti layout thrashing, network waterfall, dan rerender yang tidak perlu sering kali berdampak lebih besar pada performa

Biaya Standar

  • Mendukung standar memerlukan penulisan dan eksekusi kode tambahan
  • Namun, mendukung web components bukanlah beban yang besar
  • Mempertimbangkan fitur baru platform web adalah hal yang wajar, dan hal ini juga berlaku untuk Symbols, Proxys, Promises, dan lainnya
  • Sebagian komunitas pengembangan web mungkin tidak ingin mendukung web components, dan itu tidak masalah
  • Web adalah tenda besar yang memungkinkan beragam pendekatan

Kesimpulan

  • Web components pada dasarnya tidak bermasalah, tetapi janji bahwa semuanya bisa digantikan olehnya adalah hal yang berbahaya
  • Web components memiliki kelemahan dalam server-side rendering, aksesibilitas, interoperabilitas, dan lainnya
  • Framework lain seperti React, Solid, dan Svelte masih tetap unggul di area tertentu
  • Web digunakan untuk beragam tujuan, dan ini memberi peluang untuk mengekspresikan kreativitas
  • Web components mungkin tidak cocok untuk Anda, dan itu tidak masalah

# Ringkasan GN⁺

  • Artikel ini menyajikan berbagai sudut pandang tentang web components dan menekankan keseimbangan antara performa dan faktor-faktor lainnya
  • Web components tidak bisa menggantikan segalanya, tetapi cocok untuk penggunaan tertentu
  • Komunitas pengembangan web menerima beragam pendekatan, dan hal ini mendorong kreativitas
  • Jika web components tidak cocok, Anda bisa menggunakan framework lain
  • Beragam kemampuan web membuka peluang bagi bentuk ekspresi kreatif yang baru

1 komentar

 
GN⁺ 2024-10-01
Komentar Hacker News
  • Merasa artikel berjudul "Web Components Are Not the Future" kurang memiliki argumen yang meyakinkan

    • Kondisi framework frontend saat ini terasa kacau
    • Tidak ingin mempelajari framework yang rumit
    • Tidak menginginkan fitur-fitur seperti sihir yang tidak bisa dipahami tanpa dokumentasi
    • Web Components bersifat intuitif dan menyediakan isolasi melalui Shadow DOM
    • Berpikir bahwa dari era React, yang layak dipertahankan hanyalah JSX
  • Pendapat orang berbeda-beda karena masing-masing mengejar optimasi yang berbeda

    • Di startup yang didanai VC, framework mungkin cocok
    • Di laboratorium akademik, Web Components yang biaya perawatannya rendah lebih baik
    • Pengalaman beralih dari Vue ke Web Components sangat baik
    • Ketergantungan berkurang sehingga lebih mudah dikelola
  • Svelte mendukung pembuatan Web Components melalui Custom Elements API

    • Svelte dikompilasi menjadi JS/HTML/CSS sehingga mudah membuat komponen yang bisa digunakan ulang
  • Berpikir bahwa Web Components tidak membuat hidup full-stack developer menjadi lebih baik

    • Sebagian besar contoh pada dasarnya hanya men-template-kan data ke dalam HTML
    • Itu sudah bisa dilakukan dengan Handlebars
  • Web Components dan Shadow DOM dapat mengganggu cara kerja ekstensi browser

    • Vendor browser tidak terburu-buru menyelesaikan masalah ini
  • Interoperabilitas datang dengan biaya performa

    • Berbagai framework memiliki runtime masing-masing, yang dapat menyebabkan penurunan performa
    • Web Components tertinggal secara teknis dan menambah kompleksitas
  • Berpikir bahwa Web Components dapat menyelesaikan masalah frontend saat ini

    • Performanya sangat baik, dan tabel data bisa di-scroll dengan mulus
    • Sedang menyiapkan pustaka Web Components
  • Sedang mewarisi codebase JS sepanjang 250.000 baris dan me-refactor-nya ke Web Components

    • Panjang kode berkurang 50.000 baris
    • Ini membantu memahami fungsi kode yang sudah ada
  • Web Components dapat bekerja bahkan tanpa JS

    • Pernah menggunakannya beberapa kali untuk progressive enhancement
    • Bekerja baik dengan server-side rendering
  • Framework dan Web Components adalah alat untuk menyelesaikan masalah yang berbeda

    • Framework bertugas merender view sesuai state
    • Web Components tidak menyelesaikan masalah manajemen state
    • Berpikir bahwa keduanya bisa hidup berdampingan