Untuk menggunakan cangkuk useContext
untuk mengakses nilai konteks dalam komponen berfungsi, anda perlu terlebih dahulu mempunyai konteks yang dibuat menggunakan React.createContext()
. Inilah cara anda boleh menggunakannya:
Import Konteks : Anda perlu mengimport konteks yang anda buat ke dalam komponen fungsi anda. Sebagai contoh, jika anda membuat ThemeContext
, anda akan mengimportnya seperti ini:
<code class="javascript">import { ThemeContext } from './ThemeContext';</code>
Gunakan cangkuk useContext : Di dalam komponen fungsional anda, anda menggunakan cangkuk useContext
untuk melanggan konteksnya. Hook useContext
mengembalikan nilai konteks semasa. Untuk ThemeContext
, ia akan kelihatan seperti ini:
<code class="javascript">function MyComponent() { const theme = useContext(ThemeContext); // Use the theme value as needed in your component return <div style="{{" color: theme.color>Themed Component</div>; }</code>
useContext
boleh digunakan dalam komponen anda. Dalam contoh di atas, objek theme
digunakan untuk gaya komponen. Dengan mengikuti langkah -langkah ini, anda boleh menggunakan useContext
secara berkesan dalam komponen berfungsi anda untuk mengakses dan menggunakan nilai yang disediakan oleh konteks.
Menggunakan useContext
melalui API konteks tradisional menawarkan beberapa manfaat, terutamanya dalam komponen berfungsi:
Consumer
, yang boleh menjadi rumit dan verbose. useContext
menyediakan sintaks yang lebih mudah, menjadikan kod bersih dan lebih mudah dibaca.useContext
, anda boleh mengakses nilai konteks secara langsung dalam komponen fungsional anda, tanpa membungkus komponen anda dengan Consumer
. Ini menjadikan aliran data lebih jelas dan lebih mudah diurus.useContext
adalah cangkuk, ia mengintegrasikan dengan baik dengan cangkuk lain seperti useState
, useEffect
, dan lain -lain. Ini membolehkan pengurusan negeri yang lebih fleksibel dan pengendalian kesan sampingan dalam komponen yang sama.useContext
membantu mengelakkan masalah penggerudian prop, di mana anda perlu lulus prop di pelbagai tahap hierarki komponen. Anda boleh mengakses nilai konteks di mana -mana peringkat tanpa perlu lulus prop.useContext
akan membuat semula, yang boleh menjadi lebih efisien berbanding dengan kaedah tradisional di mana pembekal konteks keseluruhan subtree mungkin membuat semula. Untuk membuat dan menyediakan konteks menggunakan useContext
dalam aplikasi React, ikuti langkah -langkah ini:
Buat konteks : Pertama, buat konteks menggunakan React.createContext()
. Anda boleh memberikan nilai lalai jika dikehendaki.
<code class="javascript">const ThemeContext = React.createContext('light');</code>
Buat pembekal konteks : Bungkus permohonan anda atau subtree dengan pembekal konteks. Penyedia akan menjadikan konteks tersedia untuk komponen anaknya.
<code class="javascript">function App() { const [theme, setTheme] = useState('light'); return ( <themecontext.provider value="{{" theme settheme> <toolbar></toolbar> </themecontext.provider> ); }</code>
Mengambil konteks : Dalam mana -mana komponen berfungsi dalam pembekal, anda boleh menggunakan cangkuk useContext
untuk mengakses nilai konteks.
<code class="javascript">function ThemedButton() { const { theme, setTheme } = useContext(ThemeContext); return ( <button onclick="{()"> setTheme(theme === 'light' ? 'dark' : 'light')} style={{ backgroundColor: theme === 'light' ? '#ffffff' : '#000000', color: theme === 'light' ? '#000000' : '#ffffff' }} > Toggle Theme </button> ); }</code>
Dengan mengikuti langkah -langkah ini, anda boleh membuat konteks dan membuat nilainya tersedia untuk mana -mana komponen dalam skop pembekal.
Pemaju kesilapan biasa membuat apabila menggunakan useContext
cuba mengakses nilai konteks di luar komponen reaksi atau cangkuk. useContext
hanya boleh dipanggil di peringkat atas komponen berfungsi atau dalam cangkuk tersuai.
Contoh penggunaan yang tidak betul :
<code class="javascript">const theme = useContext(ThemeContext); // This is incorrect if not inside a component or custom hook function MyComponent() { return <div style="{{" color: theme.color>Incorrect Usage</div>; }</code>
Cara mengelakkannya :
Untuk mengelakkan kesilapan ini, pastikan anda menggunakan useContext
dalam badan komponen berfungsi atau dalam cangkuk tersuai. Inilah cara yang betul untuk menggunakannya:
<code class="javascript">function MyComponent() { const theme = useContext(ThemeContext); // Correct usage return <div style="{{" color: theme.color>Correct Usage</div>; }</code>
Dengan mengikuti peraturan ini, anda memastikan bahawa useContext
digunakan dengan sewajarnya dalam peraturan cangkuk React, mencegah kesilapan runtime dan memastikan kod anda berfungsi seperti yang dimaksudkan.
Atas ialah kandungan terperinci Bagaimana anda menggunakan cangkuk useContext untuk mengakses nilai konteks dalam komponen berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!