Reusable Component Menggunakan React dan Tailwind


Konsep Reusable

Istilah “konsep reusable” dalam pengembangan perangkat lunak merujuk pada pendekatan untuk memanfaatkan kembali (reuse) fungsi, kelas, atau objek dalam program atau aplikasi yang sedang dikembangkan. Sebuah komponen React dapat dikatakan reusable ketika komponen tersebut dapat dengan mudah digunakan kembali di berbagai bagian dari aplikasi tanpa perlu banyak modifikasi atau penyesuaian. Reusability adalah salah satu konsep penting dalam pengembangan perangkat lunak yang membantu dalam mengurangi duplikasi kode, meningkatkan efisiensi pengembangan, dan memudahkan pemeliharaan.

Tools

Di bawah ini terdapat beberapa tools yang dapat memudahkan kita untuk membuat reusable komponen :

cslx

Utilitas kecil ini digunakan untuk membangun string className secara kondisional. Ini juga berfungsi sebagai pengganti modul classnames yang lebih cepat dan lebih ringan.

tailwind-merge

Fungsi utilitas ini digunakan untuk menggabungkan kelas-kelas Tailwind CSS secara efisien dalam JavaScript tanpa konflik.

class-variance-authority

CVA, singkatan dari “Class Variance Authority,” adalah suatu tool atau library yang bertujuan untuk menyederhanakan pembuatan variasi style pada pengembangan antarmuka pengguna (UI).

Membuat Reusable Component

Setup project

Pastikan telah membuat project dan telah terinstall tailwind di dalamnya. Jika belum maka install dengan mengikuti dokumentasi dari tailwind.

https://tailwindcss.com/docs/installation

Setelah itu install depedencies yang dibutuhkan.

npm i clsx tailwind-merge class-variance-authority react-router-dom

Buat fungsi cn yang digunakan untuk menggabungkan kelas-kelas (class names) yang diberikan dalam bentuk array, dan kemudian memprosesnya untuk menghasilkan kelas-kelas tailwindcss akhir yang akan digunakan dalam komponen React.

Membuat Komponen Button

Import modul dan komponen yang diperlukan. Termasuk modul React, beberapa utilitas seperti cn dari file “./lib/utils”, modul class-variance-authority dengan alias cva, dan komponen Link dari “react-router-dom”.

Selanjutnya definisikan jenis tipe yang akan digunakan pada komponen button.

Selanjutnya buat variasi style button dengan menggunakan cva.

Dalam buttonVariants terdapat variasi style yang dapat diimplementasikan nanti pada komponen button. Selanjutnya buat komponen button.

Di sini, terdapat periksaan kondisi apakah properti href tersedia. Jika href tersedia, komponen akan merender elemen Link dari “react-router-dom”, yang diberikan properti to untuk menavigasi ke tautan yang diberikan dalam properti href. Jika tidak ada href, maka komponen akan merender elemen button HTML biasa.

Dalam keduanya, gaya yang diterapkan pada elemen tombol (baik <Link> maupun <button>) diambil dari objek buttonVariants yang telah didefinisikan sebelumnya. Properti variantsize, dan className digunakan untuk menyesuaikan gaya tombol.

Terakhir, komponen tombol diekspor dengan pernyataan export default Button;, sehingga dapat digunakan di berbagai tempat dalam aplikasi.

Kesimpulan

Pada tahap awal, penciptaan komponen yang dapat digunakan ulang mungkin tampak seperti langkah yang memerlukan usaha ekstra. Proses perancangan komponen yang sesuai dengan konsep reusable bisa jadi menuntut waktu dan pemikiran lebih dalam. Namun, manfaat yang dihasilkan dari pendekatan ini akan menjadi jelas ketika proyek beranjak menuju tingkat kompleksitas yang lebih tinggi, dan kode yang sama perlu digunakan berulang-ulang.

Pada saat aplikasi berkembang dan menjadi semakin kompleks, keputusan untuk berinvestasi dalam pembuatan komponen yang dapat digunakan ulang akan terbukti sangat berharga. Meskipun proses awal mungkin lebih berat, seiring berjalannya waktu,reusable komponen akan meningkatkan Konsistensi, Pemeliharaan Efisien, Skalabilitas, Kerjasama Tim.

Referensi

Creating High-Quality React Components: Best Practices for Reusability – https://www.youtube.com/watch?v=eXRlVpw1SIQ