Thumbnail for article Berkenalan Dengan React: Basic
React
6 minute(s) read

Berkenalan Dengan React: Basic

Kita akan mulai belajar dan berkenalan dengan React dan kawan - kawannya pada blog ini.

DevelopmentReact

Apa Itu React?

Sebelum memulai belajar kita harus kenalan dulu, React itu apa sih?

React adalah library JavaScript untuk membangun antarmuka pengguna yang dibuat oleh Facebook. React memudahkan kita untuk membangun sebuah website dengan fitur SPA (Single Page Application). Dengan fitur SPA tentu akan meningkatkan performa website, kita hanya perlu mengganti data yang tampil jika ingin berpindah halaman bukan memberikan halaman baru kepada pengguna.

React Website
React Website

Walau cukup sering disebut sebagai framework, React sendiri sebenarnya adalah library seperti yang disebutkan pada websitenya. Karena React tidak memiliki aturan tersendiri pada penggunaannya. Seperti struktur folder project yang React sendiri tidak memberikan aturan khusus, hanya memberikan rekomendasi. Kalau di website ini mengatakan "move files around until it feels right" 😄.

Menggunakan React

Untuk menggunakan React di project kita, bisa lewat tag script dan mulai membuat React component. Lebih lanjutnya bisa cek di dokumentasinya.

Membuat Project Baru

Pada blog ini, kita hanya akan menggunakan CRA (Create React App) untuk membuat project baru dengan React. Kita bisa jalankan perintah npx create-react-app my-app atau yarn create react-app my-app jika menggunakan yarn.

Kita akan coba membuat project React dengan nama my-react-app. Saya akan menggunakan yarn, maka jalankan perintah yarn create react-app my-react-app dan tunggu sampai project selesai dibuat. Jika sudah selesai, maka tampilan terminal akan seperti berikut:

Created React App
Created React App

CRA sudah menyediakan struktur folder dan beberapa package tambahan di project React kita. Jika kita coba jalankan projectnya dengan perintah yarn start, maka akan tampil seperti berikut:

React New Project Interface
React New Project Interface

Kita akan coba ke file src/App.js.

import logo from './logo.svg';
import './App.css';

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
        <p>
          Edit <code>src/App.js</code> and save to reload.
        </p>
        <a
          className="App-link"
          href="https://reactjs.org"
          target="_blank"
          rel="noopener noreferrer"
        >
          Learn React
        </a>
      </header>
    </div>
  );
}

export default App;

File App.js ini bisa disebut sebagai parent bagi semua komponen nantinya, sedangkan rootnya ada di file index.js. Di folder src juga ada beberapa file tambahan seperti App.test.js dan setupTests.js yang berfungsi jika kita akan menggunakan testing pada React.

Untuk kali ini, kita hanya belajar dasarnya saja. Jadi, kita coba langsung untuk menghapus semua teks pada App.js dan sisakan logonya. Maka file App.js akan seperti berikut:

import logo from './logo.svg';
import './App.css';

function App() {
  return (
    <div className="App">
      <header className="App-header">
        <img src={logo} className="App-logo" alt="logo" />
      </header>
    </div>
  );
}

export default App;

Sintaks di dalam blok return diatas disebut sebagai JSX, dia mirip seperti HTML tapi kita bisa berikan nilai dinamis didalamnya. Sebagai contoh kita coba tambahkan nama kita dibawah logo:

...

function App() {
  const name = 'Hendra Agil';

  return (
    ...
      <img src={logo} className="App-logo" alt="logo" />
      <p>Hi, my name is {name}</p>
    ...
  );
}

Maka nama kita akan tampil, seperti berikut:

Name Value In JSX
Name Value In JSX

Menggunakan State

Ada kemungkinan kita ingin menampilkan nilai yang lebih dinamis atau bisa berubah - ubah. Untuk itu kita bisa menggunakan state. Pada React versi 16.8 ke bawah, state hanya bisa digunakan pada class component. Tapi setelah adanya update pada versi 16.8 ke atas, React memperkenalkan hooks.

Apa Itu Hooks?

Hooks bisa digunakan untuk deklarasi dan modifikasi state di functional component. Untuk itu, kita bisa gunakan useState. Sebagai contoh, kita akan membuat state count dan dia akan bertambah saat kita klik pada sebuah button.

Maka kita perlu import useState dan deklarasi state-nya terlebih dahulu:

import { useState } from 'react';
...

function App() {
  const [count, setCount] = useState(0);
  ...
}

Disitu ada count yaitu nilai state itu sendiri dan ada setCount yang akan kita gunakan untuk merubah nilai pada state count. Nilai 0 pada parameter useState adalah nilai awal state tersebut.

Kita akan tambahkan button untuk melakukan perubahan state dan sedikit teks untuk menampilkan state count tadi:

...

function App() {
  ...
  return (
    ...
      <p>You clicked the button {count} times</p>
      <button onClick={() => setCount(count + 1)}>Click Me!</button>
    ...
  );
}

Disitu kita menambahkan event onClick pada button dan menggunakan setCount untuk menambah nilai pada state count. Jika dijalankan maka hasilnya akan seperti berikut:

Demo setCount Value
Demo setCount Value

Lebih Lanjut Tentang Hooks

Hooks sendiri bukan hanya digunakan untuk state, tapi juga bisa menggantikan component lifecycle seperti componentDidMount, componentDidUpdate, dll. yang awalnya hanya ada pada class component dengan menggunakan useEffect.

Masih ada juga beberapa hooks tambahan yang disediakan oleh React, bisa dibaca saja di sini. Jika dirasa hooks yang tersedia masih kurang atau tidak sesuai kebutuhan, kita bisa membuat custom hooks. Yaitu membuat hooks versi kita sendiri yang tentunya bisa menyesuaikan kebutuhan kita.

Penutup

Sepertinya itu dulu untuk blog kali ini. Untuk beberapa topik seperti props, routing, dll. mungkin akan saya bahas di blog selanjutnya atau kalian bisa pelajari sendiri dari beberapa list tutorial berikut:

Terima kasih sudah membaca blog saya, selamat belajar! Semoga bermanfaat.