ReactJS ( React ), adalah library yang di peruntukkan untuk membangun UI web yang baik. Oh iya, saya buat situs ini sebagai catatan ketika mempelajari react.
Di ciptakan pertama kali untuk membantu Facebook mengatasi masalah DOM-nya, kini library ini telah menjadi salah satu library javascript terpopuler.
"Menyalip AngularJS yang sepenuhnya merupakan sebuah framework, dan saling kejar-kejaran dengan VueJS."
Banyak sekali kelebihan-nya, tapi tidak akan saya tuliskan. Anda bisa googling sendiri dan cari tahu di situs lain.
Ada beberapa hal yang mesti Anda persiapkan sebelum bisa menggunakan reactJS. Library ini tidak seperti jquery yang tinggal pasang di laman html dan bisa Anda gunakan.
Pertama-tama, Anda mesti mempersiapkan server. Mau itu server lokal (di komputer Anda), maupun server (hosting) tempat lain.
Saran saya, untuk pemula maka bisa coba pakai server lokal yaitu komputer atau laptop sendiri untuk bisa menjalankan react ini.
Tapi kalau Anda orang yang tidak sabaran, bisa langsung coba di browser Anda. Caranya tinggal klik situs : Codesandbox for React atau Stackblitz ini.
Kalau Anda punya hosting sendiri, bisa coba simpan file dari link ini dengan nama index.html di folder public Anda. Kemudian, edit file tersebut. Jika sudah, akseslah situs yang meng-host file ini untuk melihat perubahan.
Untuk jangka panjang, maka Anda wajib mempersiapkan server. Caranya sangat mudah.
Bagi pengguna windows 7 / 8 / 10 :
Pada saat artikel ini dibuat, powershell yang telah di rilis untuk versi terbarunya adalah versi 7.1.3. Anda bisa mendownload-nya dari link ini.
Bagi pemula, setelah Anda buka link diatas, maka Anda wajib scroll sampai bawah dan lihat di bagian Assets. Scroll lagi dan cari link PowerShell-7.1.3-win-x64.msi dan PowerShell-7.1.3-win-x86.msi.
Sesuaikan arsitektur komputer ataupun laptop Anda. Jika Anda memakai windows 7 versi 32bit, maka pilih yang PowerShell-7.1.3-win-x86.msi. Sedangkan yang versi 64bit wajib pilih yang PowerShell-7.1.3-win-x64.msi.
Bagaimana kalau Anda tidak tahu cara cek arsitektur komputer? Gampang, tinggal klik tombol Windows di keyboard, trus ketik di bagian search: "dxdiag". Akan muncul dxdiag.exe maka Anda tinggal klik saja aplikasi tersebut.
Lihat dibagian Operating System. Jika tertera 64-bit, maka arsitektur Anda adalah versi 64bit.
Ini saya beri contoh tampilan dxdiag di komputer saya:
Komputer saya masih memakai windows versi 7, dengan arsitektur 64-bit. Jadul,ya? Mau bagaimana lagi, saya males upgrade ke versi terbaru.
Setelah download, tolong di install.
Untuk sistem operasi lain : MacOS, OSX, Linux, CentOS, dsb, tolong merujuk pada masing-masing OS dan arsitektur.
NodeJS adalah platform yang memungkinkan javascript di jalankan dari sisi back-end, bukan hanya front-end. Selengkapnya tentang platform ini, bisa Anda cari di google.
Untuk mendownload, silahkan klik situs resminya: Node.js.
Pastikan di install sesuai dengan arsitektur dan OS Anda.
Bagi pengguna windows 7, maka nodejs versi terbaru tidak lagi bisa di install. Ini karena dukungan dari nodejs untuk windows 7 mulai dari versi 13.6.0 ke atas telah dihentikan.
Solusinya :
Text-editor ini sangat diperlukan untuk editing code nantinya, dan merupakan aplikasi essensial. Silahkan download dengan cara klik situs resminya : Visual Studio Code.
Sesuaikan dengan arsitektur dan OS, dan jangan lupa di install.
Persiapan untuk lingkungan pemrograman reactJS telah selesai. Selanjutnya akan saya tuliskan lagi nanti.
Pertama-tama pastikan semua persiapan sudah selesai.
Jika sudah, maka saatnya memulai membuat project contoh untuk di edit dan di kembangkan nantinya.
Saran saya, buat sebuah folder di local disk, dan beri nama dengan sesuai.
Kalau saya sendiri, membuat folder di D:/ dengan nama folder NODEJS. Kemudian di dalam-nya saya buat folder lagi dengan nama REACTJS.
Di dalam folder REACTJS ini nantinya saya akan meng-copy project contoh dari react dan kemudian mengeditnya dengan VS Code.
Nama folder akhir saya: D:/NODEJS/REACTJS/<nama project>.
Untuk langkah-langkah-nya sangat mudah.
Perhatikan tanda $ (dolar). Tanda itu tidak perlu di ketik, hanya simbol kode CLI.
Jika ada perintah yang depan-nya memakai simbol $ (dolar) ini, maka artinya perintah ini di jalankan menggunakan powershell (lokal) ataupun ssh (non-lokal).
Rangkuman perintah-nya ini:
$ cd D:/
$ mkdir NODEJS/REACTJS
$ cd NODEJS/REACTJS
$ npx create-react-app myproject
$ cd myproject
$ npm start
Ini adalah basic javascript yang tidak ada kaitan dengan API dari React. Tapi seringkali di pakai, terutama untuk aplikasi yang membutuhkan akses data dari web pihak ketiga.
Ada 2 jenis pemanggilan yang sering digunakan.
Yang pertama:
Jadi, kode di atas memang bisa berjalan dengan baik. Tapi, ada solusi yang lebih baik dengan kode yang lebih bersih dan sederhana.
Anda juga bisa menggunakan fitur baru bernama IIFE (Immediately invoked function expression) untuk trigger function yang telah Anda buat sebelumnya yaitu LoadData().
Kita akan belajar membuat aplikasi blog sederhana menggunakan React. Dan untuk itu, kita akan melakukan sedikit perombakan pada project awal.
Ingat, kita membuat project menggunakan perintah $ npx create-react-app myproject, sehingga Anda langsung bisa mencoba menjalankan react.
Tapi, project awal ini tidak begitu berguna. Kita lakukan beberapa hal untuk mengubah project ini agar lebih mudah di kembangkan.
Kemudian, pada App.js, ubah menjadi seperti ini:
Tujuan saya menyuruh Anda membuat hal ini adalah karena kita akan mempelajari tentang react, sehingga penting bagi kita untuk menyederhanakan semuanya.
Ini adalah template awal yang akan kita gunakan untuk membuat project blog sederhana.
Satu lagi catatan:
Tidak perlu import React di file turunan.
Karena di index.js sudah ada import React, maka selanjutnya pada App.js kita tidak perlu lagi meng-import-nya.
Fitur ini tersedia untuk react versi 17 keatas.
Kebanyakan framework, project javascript pada platform NodeJS telah mengadopsi fitur-fitur ES6 (baca: ekmasix).
Walaupun pada browser kebanyakan belum semuanya mendukung, tapi para developer javascript zaman now sangat wajib menguasai-nya.
Untuk informasi lebih jauh tentang EcmaScript 2015 ini, bisa baca artikel berjudul Kenalan dengan ES6 Javascript (Introduction, variable, arrow function) #Part1 buatan Reno Putra Prawira.
So, dari pengamatan dan pengalaman saya, ternyata ada beberapa fitur JS yang sangat sering digunakan.
Berikut listnya dari ES6:
Sedangkan dari javascript sebelum ES6, banyak digunakan fitur-fitur manipulasi array. Referensi lengkap bisa baca di situs W3Schools: JavaScript Array Methods
Paling sering saya lihat digunakan dalam project adalah fungsi array.map yang digabung dengan arrow function.
Kalau penggunaan pada react, seringkali digunakan untuk menampilkan state ataupun props.
React Zaman now menggunakan function & hook sebagai pengganti dari class. Adapun alasan menggunakan function adalah karena penggunaan class seringkali membingungkan dan bisa menyebabkan efek samping yang tidak di inginkan.
Banyak hal yang menjadi pertimbangan tim pengembang mereka sampai akhirnya hook keluar sebagai solusi.
Untuk itu, dalam pembuatan project blog kita tidak akan lagi menggunakan class.
Hal pertama yang akan kita pelajari adalah soal output data baik itu state, props, dsb.
Pada function component, kita output-nya di dalam syntax return().
Contoh output (render) pada FC :
Rangkuman seputar props dan state.
Membuat props sangat mudah. Anda bisa langsung "hardcode" ke dalam child component.
Atau membuat state dahulu barulah jika diperlukan, Anda baru masukkan ke dalam child component.
Parent component buat function untuk mengubah state blog dahulu.
Pada child component.
Pada element yang mau di tambahkan inline styling, bisa output dalam bentuk object.
Pembuatan function di RFC (React Function Component) ada 2 cara.
Cara pertama paling sederhana:
atau versi singkat...
Cara kedua:
Jika ada parameter / props:
Apabila mau data tertentu dari props:
Parameter / atribut yang digunakan pada parent component haruslah sesuai dengan data yang di inginkan.
Pada contoh di atas, atribut props yang di inginkan adalah datasatu dan datadua.
Maka di parent component seperti ini:
Perhatikan bahwa props datatiga juga tersedia tapi karena tidak di-inginkan maka data dari props ini tidak akan tersedia pada child component tersebut.
Pada awalnya kita pasti membuat component satu-per-satu untuk setiap bagian pada aplikasi web kita.
Tapi hal ini akan memakan waktu jika kita terus-menerus membuat component padahal UI dari component tersebut sama satu sama-lain. Hanya berbeda dari sisi data saja.
Contoh paling sederhana adalah tampilan arsip blog yang mirip dengan tampilan pada halaman category maupun tags pada wordpress.
Tidaklah bijak membuat 3 components untuk tampilan yang mirip (bahkan sama).
Maka cara terbaik adalah membuat 1 component yang tampilan-nya hanya berubah dari sisi data saja.
Jadi nanti pada component parent yang membutuhkan rendering UI tersebut, cukup ubah props component child ini.
Bersambung nanti...