Server State dalam ReactJS


Server State dalam ReactJS

Table of Contents


Pengertian Server State

Server State adalah state yang berasal dari server atau sumber data eksternal, seperti API atau database. State ini tidak hanya dikelola di sisi klien tetapi juga bergantung pada komunikasi dengan server.


Perbedaan Server State dan Global State

Server State Global State
Data berasal dari server atau API. Data dikelola di dalam aplikasi React.
Memerlukan fetch, update, dan sinkronisasi dengan backend. Hanya dikelola di sisi frontend.
Digunakan untuk data seperti daftar pengguna, produk, atau artikel. Digunakan untuk state aplikasi seperti tema atau autentikasi.

Cara Mengelola Server State

Menggunakan Fetch API

Metode sederhana untuk mengambil data dari server.

import { useState, useEffect } from "react";

const FetchData = () => {
  const [data, setData] = useState([]);
  const [loading, setLoading] = useState(true);

  useEffect(() => {
    fetch("https://jsonplaceholder.typicode.com/posts")
      .then(response => response.json())
      .then(data => {
        setData(data);
        setLoading(false);
      });
  }, []);

  if (loading) return 

Loading...

; return (
    {data.map(post => (
  • {post.title}
  • ))}
); };

Menggunakan React Query

React Query membantu mengelola state server dengan caching dan auto-fetching.

import { useQuery } from "react-query";

const fetchPosts = async () => {
  const response = await fetch("https://jsonplaceholder.typicode.com/posts");
  return response.json();
};

const Posts = () => {
  const { data, error, isLoading } = useQuery("posts", fetchPosts);

  if (isLoading) return 

Loading...

; if (error) return

Error fetching data

; return (
    {data.map(post => (
  • {post.title}
  • ))}
); };

Manfaat Server State

  • Sinkronisasi data dengan server: Memastikan data di UI selalu sesuai dengan server.
  • Optimasi performa: Mengurangi penyimpanan state yang tidak perlu di frontend.
  • Mudah di-cache dan di-refresh: Dengan React Query, data dapat di-cache untuk meningkatkan responsivitas.

Contoh Penerapan

Server State sering digunakan dalam:

  • Pemanggilan data pengguna dari API.
  • Sinkronisasi data real-time dalam dashboard.
  • Pengelolaan daftar produk dalam aplikasi e-commerce.

Kesalahan yang Sering Terjadi

  • Melakukan fetching di setiap render: Gunakan dependency array dalam useEffect atau caching dengan React Query.
  • Tidak menangani loading dan error state: Pastikan selalu ada pengecekan sebelum menampilkan data.
  • Menimpa state lama tanpa validasi: Perbarui state dengan mempertimbangkan data sebelumnya.

Kesimpulan

Server State dalam ReactJS memungkinkan pengelolaan data yang berasal dari server dengan cara yang efisien. Dengan menggunakan Fetch API atau React Query, pengembang dapat memastikan data tetap sinkron dengan backend, meningkatkan performa, dan menghindari masalah seperti fetch berulang atau tidak menangani error dengan baik.

0 comments :

Post a Comment