useContext() Flashcards

1
Q

Apa itu useContext di React?

A

useContext adalah hook di React yang digunakan untuk berbagi data secara global antar komponen tanpa perlu meneruskan data tersebut melalui props di setiap level komponen. Ini memungkinkan komponen di berbagai level dalam aplikasi mengakses data atau state langsung dari context yang disediakan.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Apa itu Context di React?

A

Context di React adalah fitur yang memungkinkan kita berbagi data secara global di seluruh komponen, tanpa harus meneruskannya melalui props dari satu komponen ke komponen lainnya. Context biasanya digunakan untuk data yang harus diakses oleh banyak komponen, seperti tema aplikasi (light/dark mode), data pengguna, atau status autentikasi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Kapan kita menggunakan useContext?

A

Kita menggunakan useContext ketika:

  1. Data atau state perlu diakses oleh beberapa komponen di berbagai level dalam hierarki komponen.
  2. Ingin menghindari prop drilling (meneruskan props terlalu jauh melalui beberapa komponen).
  3. Ingin membagikan data global seperti tema, status login, preferensi pengguna, atau konfigurasi aplikasi.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Apa itu Prop Drilling?

A

Prop drilling adalah situasi di mana kita harus meneruskan props melalui beberapa level komponen, meskipun hanya komponen di level yang lebih dalam yang benar-benar membutuhkannya. Ini bisa membuat kode sulit dipelihara dan membingungkan. useContext membantu menghindari masalah ini dengan memberikan akses langsung ke data tanpa harus melalui props di setiap level.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Bagaimana cara membuat Context di React?

A
  1. Gunakan createContext()
import { createContext } from 'react';
export const MyContext = createContext();
  1. Bungkus komponen yang ingin mengakses data context dengan Provider dari context yang Anda buat.
<MyContext.Provider value={/* nilai yang ingin dibagikan */}>
  {/* Komponen yang bisa mengakses context */}
</MyContext.Provider>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Apa itu Provider dalam useContext?

A

Provider adalah komponen yang digunakan untuk “membungkus” komponen lain dan menyediakan data atau state dari context kepada mereka. Provider menerima value sebagai prop, yang merupakan data atau state yang akan dibagikan.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Dimana sebaiknya kita meletakkan Provider?

A
  1. Jika state atau data perlu diakses oleh banyak komponen di seluruh aplikasi, letakkan Provider di tingkat yang sangat tinggi, misalnya di komponen root (App.js).
  2. Jika hanya sebagian kecil aplikasi yang membutuhkan context, letakkan Provider di komponen yang lebih dekat dengan komponen yang memerlukan data tersebut.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Bagaimana cara menggunakan useContext di komponen?

A

Untuk menggunakan data dari context, gunakan hook useContext di dalam komponen:

import { useContext } from 'react';
import { MyContext } from './MyContext';

function MyComponent() {
  const contextValue = useContext(MyContext);
  // Gunakan contextValue di sini
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Apa perbedaan antara menggunakan useContext dan props biasa?

A
  1. Props digunakan untuk meneruskan data dari komponen induk ke komponen anak secara langsung. Namun, ini bisa menjadi rumit jika data perlu diteruskan melalui banyak level komponen (prop drilling).
  2. useContext memungkinkan akses data secara langsung dari context global tanpa perlu meneruskan props melalui beberapa level komponen, sehingga menghindari prop drilling.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Bisakah kita menggunakan beberapa Context di satu komponen?

A

Ya, kita bisa menggunakan beberapa context di satu komponen dengan membungkus Provider dari context yang berbeda secara berlapis, atau memanggil beberapa kali useContext di dalam komponen.

<AuthContext.Provider value={authValue}>
  <ThemeContext.Provider value={themeValue}>
    {/* Komponen di sini bisa mengakses kedua context */}
  </ThemeContext.Provider>
</AuthContext.Provider>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Apa yang terjadi jika nilai dari context berubah?

A

Jika nilai yang diberikan oleh Provider berubah, semua komponen yang menggunakan useContext untuk mengakses context tersebut akan rerender dengan nilai context yang baru. Inilah mengapa useContext berguna untuk mengelola state yang berubah, seperti tema atau status login.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Apa kelemahan dari useContext?

A
  1. Semua komponen yang menggunakan context akan rerender ketika nilai context berubah, bahkan jika perubahan hanya relevan untuk sebagian komponen saja. Hal ini bisa berdampak pada performa jika tidak dikelola dengan baik.
  2. Tidak cocok untuk semua jenis manajemen state yang kompleks, terutama jika ada logika bisnis yang rumit. Dalam kasus seperti itu, library lain seperti Redux mungkin lebih sesuai.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Kapan sebaiknya tidak menggunakan useContext?

A
  1. Jika state yang Anda kelola terlalu besar atau terlalu sering berubah, sehingga menyebabkan banyak rerender di seluruh aplikasi.
  2. Jika Anda perlu manajemen state yang lebih kompleks dengan banyak aksi dan reducer. Dalam kasus seperti ini, mungkin lebih baik menggunakan Redux, MobX, atau library lain untuk manajemen state global.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly