Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. JavaScript
Code

Memulai dengan React

by
Length:LongLanguages:
This post is part of a series called Getting Starting with React.
Data Persistence and Sessions With React

Indonesian (Bahasa Indonesia) translation by Aditia Dwiperdana (you can also view the original English article)

Final product image
What You'll Be Creating

MVC adalah paradigma yang populer dalam web development dan sudah ada cukup lama. Framework React adalah bagian yang kuat dari trio Model-View-Controller, karena React fokus pada bagian View saja. React ditulis dalam JavaScript dan dibuat oleh tim pengembang Facebook dan Instagram.

React digunakan di mana-mana pada web untuk membuat aplikasi web dengan cepat yang mudah dipelihara karena cara framework React menyusun kode pada layer view.

Apa yang bisa dilakukan React?

  1. Membangun aplikasi web yang cepat, responsif, dan tidak tergantung pada framework. React tidak membuat asumsi tentang teknologi tempatnya berada.
  2. Manipulasi Virtual DOM memberi kamu programming model yang sederhana yang bisa dirender pada browser, di server, atau di desktop dengan React Native.
  3. Data flow binding pada React dirancang sebagai data flow satu arah yang reaktif. Hal ini mengurangi kebutuhan dasar dan lebih mudah dikerjakan dibanding metode tradisional.

Hello World

Untuk memulai, berikut adalah contoh React yang diambil dari contoh resmi:

Contoh ini akan merender 'Hello John' ke sebuah container <div>. Perhatikan sintaks seperti XML/HTML yang digunakan pada baris 3 dan 8. Ini disebut JSX.

Apa itu JSX?

JSX adalah sintaks seperti XML/HTML yang digunakan untuk merender HTML dari dalam kode JavaScript. React mengubah JSX menjadi JavaScript native untuk browser, dan dengan tools yang disediakan kamu bisa mengubah kode HTML dari situs yang sudah ada menjadi JSX!

JSX memudahkan mencampur kode seperti menulis HTML native tapi dari dalam JavaScript. Jika digabung dengan Node, ini membuat alur kerja yang sangat konsisten.

JSX tidak diwajibkan untuk bisa menggunakan React, kamu bisa menggunakan JS biasa, tapi JSX adalah alat yang sangat kuat yang memudahkan untuk mendefinisikan struktur pohon dan menentukan atribut, jadi saya sangat merekomendasikan penggunaannya.

Untuk merender sebuah tag HTML pada React, cukup gunakan nama tag dengan huruf kecil dengan JSX seperti berikut ini:

Menginstall React

Ada beberapa cara untuk menggunakan React. Cara resmi yang direkomendasikan adalah dari npm atau CDN Facebook, tapi kamu bisa mengklon dari git dan mem-build sendiri. Kamu juga bisa menggunakan starter kit atau menghemat waktu dengan generator scaffolding dari Yeoman. Kita akan bahas semua metode ini agar kamu mendapat pemahaman yang lengkap.

Menggunakan CDN Facebook

Cara tercepat untuk memulai adalah dengan memasukkan library React dan React Dom dari CDN fb.me sebagai berikut:

Instalasi dari NPM

Manual React menyarankan untuk menggunakan React dengan sistem modul CommonJS seperti browserify atau webpack.

Manual React juga menyarankan menggunakan paket npm react dan react-dom. Untuk menginstall pada komputermu, jalankan perintah berikut pada terminal bash di dalam direktori proyek, atau buat direktori baru dan cd ke direktori itu terlebih dahulu.

Sekarang kamu bisa melihat instalasi React di dalam direktori node_modules.

Instalasi dari source Git

Dependensi

Kamu perlu memilki node V4.0.0+ dan npm v2.0.0+. Kamu bisa memeriksa versi node dengan node version dan npm dengan npm version.

Memperbarui Node via NVM

Saya sarankan untuk menggunakan nvm - node version manager untuk memperbarui dan memilih versi node. Mendapatkan nvm cukup mudah, cukup jalankan:

Script tersebut mengklon repository nvm ke ~/.nvm dan menambahkan baris source ke profilmu (~/.bash_profile, ~/.zshrc atau ~/.profile).

Jika kamu ingin menginstall nvm secara manual kamu bisa lakukan dengan git:

Untuk mengaktifkan nvm dengan metode ini, kamu bisa menjalankannya dari shell:

Catatan: Tambahkan baris ini ke file ~/.bashrc~/.profile, atau ~/.zshrc agar dijalankan secara otomatis saat login.

Menggunakan NVM

Setelah nvmm terinstall, kita bisa mendapatkan versi node mana saja yang kita butuhkan, dan melihat daftar versi yang terinstall dengan node list dan melihat yang tersedia dengan node ls-remote. Kita perlu versi lebih tinggi dari 4.0.0 untuk bekerja dengan React.

Install versi terbaru dan atur sebagai versi default dengan cara berikut:

Node sudah diperbarui dan npm sudah termasuk di dalamnya. Sekarang kamu sudah bisa melanjutkan proses instalasi.

Membangun React dari source Git

Klon repository dengan git ke direktori bernama react pada komputermu dengan perintah berikut:

Setelah kamu klon repo tersebut, kamu bisa menggunakan grunt untuk membangun React:

Saat ini, sebuah direktori build/ sudah diisi dengan semua yang akan kamu butuhkan untuk menggunakan React. Lihatkan direktori /examples untuk melihat beberapa contoh dasar bekerja!

Menggunakan Starter Kit

Pertama, unduh starter kit yang dibutuhkan.

Ekstrak file zip dan pada direktori root buat helloworld.html, tambahkan kode berikut:

Pada contoh ini, React menggunakan Babel untuk mengubah JSX menjadi JavaScript biasa dengan <script type="text/babel">.

Menggunakan File JavaScript yang berbeda

Buat file baru pada src/helloworld.js dan tulis kode berikut di dalamnya:

Sekarang yang perlu kamu lakukan adalah membuat referensi di HTMLmu, buka helloworld.html dan load script yang kamu buat menggunakan tag script dengan tipe atribut text/babel seperti ini:

Refresh page dan kamu akan lihat helloworld.js dirender oleh babel.

Catatan: Beberapa browser (misalnya Chrome) akan gagal memuat file kecuali jika disediakan via HTTP, jadi pastikan kamu menggunakan server lokal. Saya sarankan menggunakan browsersync project.

Transformasi Offline

Kamu juga bisa menggunakan command-line interface (CLI) untuk mengubah JSX menggunakan perintah command-line babel. Ini bisa didapat dengan mudah menggunakan perintah npm:

Flag --global atau -g akan menginstall babel secara global sehingga bisa diakses di mana saja. Ini adalah kebiasaan yang baik dalam menggunakan Node untuk banyak proyek dan command-line tool.

Setelah babel diinstall, kita buat terjemahan dari helloworld.js yang sudah kita buat di langkah sebelumnya. Pada command prompy di direktori akar di mana kamu mengunzip starter kit, jalankan perintah berikut:

Sekarang file build/helloworld.js akan dibuat secara otomatis setiap kamu membuat perubahan! Jika kamu tertarik, baca dokumentasi CLI Babel untuk mendapat pengetahuan lebih lanjut.

Sekarang babel sudah menghasilkan build/helloworld.js, yang berisi JavaScript biasa, perbarui HTML tanpa tag script babel.

Jika kita rangkum, kita bisa memuat JSX langsung di dalam tag script menggunakan babel dengan tipe atribut text/babel. Hal ini bagus untuk kebutuhan pengembangan, tapi untuk tahap produksi kita menyediakan file JavaScript yang dihasilkan yang bisa di-cache pada komputer user.

Membuat salinan ini dilakukan pada command line, dan karena ini adalah pekerjaan berulang saya sarankan kita buat menjadi otomatis menggunakan flag --watch. Atau kamu bisa selangkah lebih jauh dan menggunakan webpack dan browsersync untuk sepenuhnya mengotomatkan alur kerja pengembangan. Untuk melakukannya dengan cara termudah, kita bisa mengotomatkan proses persiapan proyek baru dengan generator Yeoman.

Menginstall dengan Yeoman Scaffolding

Yeoman adalah alat yang sangat berguna untuk memulai proyek dengan cepat dan dengan alur kerja yang optimal dan dilengkapi dengan alat konfigurasi. Idenya adalah untuk membuat kamu menghabiskan waktu lebih banyak untuk development daripada konfigurasi proyek, dan meminimalkan pekerjaan repetitif (waspadalah karena RSI adalah alasan nomor satu coder berhenti koding). Sebagai kebiasaan yang baik, menghemat waktu dengan alat dan mengimplementasi D.R.Y (Don't Repeat Yourself) dalam kehidupan sehari-hari akan mendukung kesehatan dan efisiensi, dan membuat kamu bisa menghabiskan waktu untuk menulis kode daripada melakukan konfigurasi.

Ada banyak scaffolding yang tersedia di luar sana, dengan banyak variasi untuk berbagai skala proyek. Untuk contoh pertama, kita akan menggunakan scaffolding react-fullstack dari generator Yeoman; kamu bisa melihat demo dari hasil akhirnya.

Catatan: Ini adalah konfigurasi fullstack, yang mungkin belebihan untuk banyak proyek skala kecil. Alasan saya memilih scaffolding ini adalah untuk memberi kamu pengaturan lingkungan yang lengkap, jadi kamu bisa lhat bagaimana starter kit ini dibuat menjadi aplikasi yang lebih besar. Terdapat header dan footer, dan kamu bisa lihat di mana fitur login user dan register berada, walaupun belum dibuat pada contoh tersebut.

Penggunaan

Untuk menggunakan yeoman, pertama kita perlu install, lalu jika kamu tidak punya komponen yang dibutuhkan yeoman seperti gulp, bower, dan grunt-cli, install mereka juga:

Sekarang install scaffolding React dengan perintah berikut:

Sekarang buat direktori untuk proyekmu dan cd ke direktori tersebut:

Lalu gunakan perintah yo dengan generator scaffolding React-fullstack untuk membuat aplikasi react-mu di dalam direktori tersebut:

Sekarang Yeoman akan membuat direktori dan file yang dibutuhkan; kamu bisa melihat informasi terkait ini di command line.

Dengan scaffolding yang sudah diatur, kita build proyek kita.

Awalnya kita mulai pada mode debug, dan untuk rilis kita cukup menambahkan flag --release, misalnya npm run start -- release.

Sekarang kamu akan lihar build dimulai dan inisialisasi webpack. Setelah selesai, kamu akan lihat keluaran dari webpack memberi tahu informasi lengkap tentang build dan URL untuk mengaksesnya.

Akses aplikasimu pada URL yang ditulis di akhir keluaran, dengan browser pada http://localhost:3000. Untuk mengakses antarmuka admin browser sync, buka http://localhost:3001.

Catatan: Kamu mungkin perlu membuka port pada server untuk port pengembangan yang digunakan. Untuk pengguna ubuntu/debian dengan ufw, lakukan hal berikut:

Mengubah Situs yang sudah ada menjadi JSX.

Facebook menyediakan alat tool online jika kamu hanya perlu mengubah kode HTML menjadi JSX.

Untuk kebutuhan yang lebih besar ada tool pada npm bernama htmltojsx. Kamu bisa unduh menggunakan:

Untuk menggunakannya  dengan command line:

Karena htmltojsx adalah modul node, kamu juga bisa menggunakannya langsung pada kode, misalnya:

Contoh list

Kita mulai membuat aplikasi to-do list dasar agar kamu bisa melihat bagaimana React bekerja. Sebelum kita mulai, tolong siapkan IDEmu. Saya sarankan untuk menggunakan Atom.

Pada bash promt, install linter untuk React dengan apm:

Catatan: versi terbaru dari linter-eslint membuat MacBook Pro saya sangat lambat, jadi saya non-aktifkan.

Setelah hal itu selesai, kita bisa mulai membuat list dasar di dalam scaffolding yang kita buat dengan Yeoman di langkah sebelumnya, untuk menunjukkan alur data pada contoh yang berjalan.

Pastikan server kamu dijalankan dengan npm start, dan kita mulai membuat beberapa perubahan.

Pertama, ada tiga file template yang disediakan pada scaffolding ini. Kita tidak akan menggunakannya pada contoh ini, jadi kita mulai dengan membersihkan file index.jade agar menjadi file kosong. Setelah kamu simpan file ini, periksa browser dan keluaran di terminal.

Versi baru akan ditampilkan langsung, tanpa perlu melakukan refresh. Berikut adalah konfigurasi webpack dan browsersync yang disediakan oleh scaffolding ini.

Berikutnya buka direktori komponen dan buat direktori baru.

Sekarang, di dalam direktori UserList, buat file package.json dengan isi sebagai berikut:

Lalu, masih di dalam direktori UserList, buat file UserList.js dan tambahkan kode berikut:

Untuk melengkapi, kita perlu menambahkan beberapa data untuk list ini. Kita akan lalukan di dalam components/ContentPage/ContentPage.js. Buka file tersebut dan atur isinya sebagai berikut:

Sekarang saat kita simpan, webpack akan melakukan rebuild dan browsersync akan menampilkan perubahan di browser. Lihat source code untuk melihat bagaimana halaman tersebut dirender.

Ringkasan

Kita sudah menggunakan generator scaffolding Yeoman react-fullstack untuk memulai aplikasi web React berdasarkan starter kit. Untuk penjelasan lebih lanjut tentang file dan susunan direktori, lihat file readme pada repo git react starter kit.

Dari sini kita edit file index.jade agar diabaikan dan mulai membuat tampilan view kita sendiri, membuat komponen baru bernama UserList.

Di dalam components/UserList/UserList.js kita definisikan bagaimana list akan dirender:

Di sini penting untuk diketahui bahwa React membutukan semua item yang diiterasi memiliki identifier unik yang disediakan di bawah atribut key.

Untuk menampilkan list tersebut, kita masukkan ke dalam file ContentPage.js dengan import UserList from '.../UserList'; dan definisikan beberapa data test dengan:

Di dalam ContentPage.js kita panggil komponen UserList dengan JSX <UserList data={listData} />.

Sekarang komponen UserList bisa mengakses atribut data menggunakan this.props.data.

Kapan saja kita lempar nilai dengan atribut sebuah komponen, nilai tersbut bisa diakses via this.props. Kamu juga bisa mendefinisikan tipe data yang harus disediakan menggunakan variabel statik propTypes di dalam kelas tersebut.

Sintaks Extended Components vs. React.createClass

Terakhir, poin penting yang perlu dicatat adalah bahwa contoh ini memanfaatkan extended components. Hal ini memiliki banyak keuntungan untuk membuat struktur kode secara semantik. Tapi, kamu mungkin ingin mengakses pendekatan yang lebih bare-bone, seperti banyak contoh lain.

Jadi dibanding menggunakan class ComponentName extends Component kamu akan buat kelas React dengan contoh menggunakan sintaks berikut:

Hal itu menutup pengenalan React ini. Kamu seharusnya sudah memiliki pemahaman yang baik tentang hal-hal berikut:

  • Mendapatkan React
  • Menggunakan Babel dengan React
  • Menggunakan JSX
  • Membuat komponen dengan metode extend
  • Menggunakan komponenmu dan melempar data ke komponen tersebut

Pada bagian berikutnya, kita akan membahas bagaimana menggunakan JSX lebih jauh, bagaimana bekerja dengan database sebagai sumber data persisten, dan bagaimana React bekerja dengan teknologi web lain seperti PHP, Rails, Python, dan .NET.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.