React 中的 useContext使用方法
useContext就是上下文
什么是上下文呢?
全局變量就是全局的上下文,全局都可以訪問到它;上下文就是你運行一段代碼,所要知道的所有變量
useContext使用的方法:
1.要先創(chuàng)建createContex
使用createContext創(chuàng)建并初始化
const C = createContext(null);
2.Provider 指定使用的范圍
在圈定的范圍內(nèi),傳入讀操作和寫操作對象,然后可以使用上下文
<C.Provider value={{n,setN}}> 這是爺爺 <Baba></Baba> </C.Provider>
3.最后使用useContext
使用useContext接受上下文,因為傳入的是對象,則接受的也應(yīng)該是對象
const {n,setN} = useContext(C);
案例:在孫子組件中使用爺爺組件中定義的變量n,并且進(jìn)行+1操作
import React, { createContext, useContext, useReducer, useState } from 'react' import ReactDOM from 'react-dom' // 創(chuàng)造一個上下文 const C = createContext(null); function App(){ const [n,setN] = useState(0) return( // 指定上下文使用范圍,使用provider,并傳入讀數(shù)據(jù)和寫入據(jù) <C.Provider value={{n,setN}}> 這是爺爺 <Baba></Baba> </C.Provider> ) } function Baba(){ return( <div> 這是爸爸 <Child></Child> </div> ) } function Child(){ // 使用上下文,因為傳入的是對象,則接受也應(yīng)該是對象 const {n,setN} = useContext(C) const add=()=>{ setN(n=>n+1) }; return( <div> 這是兒子:n:{n} <button onClick={add}>+1</button> </div> ) } ReactDOM.render(<App />,document.getElementById('root'));
使用useContext在改變一個數(shù)據(jù)時,是通過自己逐級查找對比改變的數(shù)據(jù)然后渲染,而不是通過數(shù)據(jù)響應(yīng)式來監(jiān)控變量的。
也就是說在點擊+1操作后,React開始從function App開始執(zhí)行代碼了
到此這篇關(guān)于React 的 useContext 的使用的文章就介紹到這了,更多相關(guān)React useContext 使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決React報錯`value` prop on `input` should&
這篇文章主要為大家介紹了React報錯`value` prop on `input` should not be null解決方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12react?hooks?UI與業(yè)務(wù)邏輯分離必要性技術(shù)方案
這篇文章主要為大家介紹了react?hooks?UI與業(yè)務(wù)邏輯分離必要性技術(shù)方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11React項目中fetch實現(xiàn)跨域接收傳遞session的解決方案
這篇文章主要介紹了React項目中fetch實現(xiàn)跨域接收傳遞session的解決方案,本次項目使用了react框架,同時使用fetch取代ajax作為獲取接口數(shù)據(jù)的交互方法,下面就對這次問題的解決做個總結(jié),需要的朋友可以參考下2022-04-04解決React報錯Property 'X' does not 
這篇文章主要為大家介紹了解決React報錯Property 'X' does not exist on type 'HTMLElement',有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12詳解React中的useMemo和useCallback的區(qū)別
React中的useMemo和useCallback是兩個重要的Hooks。常常被用于優(yōu)化組件的性能。雖然這兩個Hooks看起來很相似,但它們彼此之間還是有很大的區(qū)別的,隨著小編一起來學(xué)習(xí)吧2023-04-04