Apa itu useContext di React?
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.
Apa itu Context di React?
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.
Kapan kita menggunakan useContext?
Kita menggunakan useContext ketika:
Apa itu Prop Drilling?
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.
Bagaimana cara membuat Context di React?
import { createContext } from 'react';
export const MyContext = createContext();<MyContext.Provider value={/* nilai yang ingin dibagikan */}>
{/* Komponen yang bisa mengakses context */}
</MyContext.Provider>Apa itu Provider dalam useContext?
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.
Dimana sebaiknya kita meletakkan Provider?
Bagaimana cara menggunakan useContext di komponen?
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
}
Apa perbedaan antara menggunakan useContext dan props biasa?
Bisakah kita menggunakan beberapa Context di satu komponen?
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>
Apa yang terjadi jika nilai dari context berubah?
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.
Apa kelemahan dari useContext?
Kapan sebaiknya tidak menggunakan useContext?