Fundamental React


Apa itu React ?

React adalah pustaka JavaScript untuk membuat antar muka, terutama single-page applications.

Menginstal React

Untuk memulai menggunakan React, kamu bisa menjalankan perintah berikut:

Using Vite

npm create vite@latest my-app --template react
cd my-app
npm install
npm run dev

JSX (JavaScript XML)

JSX syntax extension untuk JavaScript, memungkinkan menulis kode seperti HTML di JavaScript.

Example:

const element = <h1>Hello, World!</h1>;

JSX is transpiled into JavaScript by tools like Babel.

Components

Aplikasi React dibangun menggunakan komponen. Komponen adalah bagian UI yang independen dan dapat digunakan kembali.

Example: of a Functional Component:

function Greeting() {
  return <h1>Hello, World!</h1>;
}

Props (Properties)

Props digunakan itu meneruskan data dari komponen induk ke komponen anak.

Example:

function Greeting(props) {
  return <h1>Hello, {props.name}!</h1>;
}

function App() {
  return <Greeting name="Alice" />;
}

State

State adalah cara untuk menyimpan data yang bisa berubah setiap saat. Di React setiap component bisa memiliki state masing-masing.

Managing State in Functional Components (using useState Hook):

import React, { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0);

  return (
    <div>
      <p>You clicked {count} times</p>
      <button onClick={() => setCount(count + 1)}>Click me</button>
    </div>
  );
}

Handling Events

React memungkinkan kamu untuk menangani event seperti click dll.

Example:

function Button() {
  const handleClick = () => {
    alert("Button clicked!");
  };

  return <button onClick={handleClick}>Click me</button>;
}

Conditional Rendering

Di React, Kamu dapat merender komponen atau elemen secara kondisional berdasarkan status atau properti.

Example:

function Greeting(props) {
  return props.isLoggedIn ? <h1>Welcome, {props.name}!</h1> : <h1>Please log in.</h1>;
}

Lists and Keys

React menggunakan keys untuk memperbarui daftar elemen secara efisien saat data berubah.

Example:

const items = ["apple", "banana", "cherry"];

function ItemList() {
  return (
    <ul>
      {items.map((item, index) => (
        <li key={index}>{item}</li>
      ))}
    </ul>
  );
}

useEffect Hook

Hook useEffect memungkinkan kamu menambahkan efek samping di dalam komponent.

Example:

import React, { useState, useEffect } from 'react';

function DataFetcher() {
  const [data, setData] = useState(null);

  useEffect(() => {
    fetch("https://api.example.com/data")
      .then(response => response.json())
      .then(data => setData(data));
  }, []); // Empty array means it runs only once when the component mounts

  return <div>{data ? JSON.stringify(data) : "Loading..."}</div>;
}

React Router

React Router adalah pustaka untuk mengatur routing di React.

Example:

import { BrowserRouter as Router, Route, Switch } from 'react-router-dom';

function App() {
  return (
    <Router>
      <Switch>
        <Route path="/" exact>
          <h1>Home</h1>
        </Route>
        <Route path="/about">
          <h1>About</h1>
        </Route>
      </Switch>
    </Router>
  );
}