React - Context API 維護全域性狀態,實現全域性元件通訊
Context API 維護全域性狀態,實現全域性元件通訊
Context API 有 3 個關鍵的要素:React.createContext、Provider、Consumer。
我們通過呼叫React.createContext
,可以建立出一組 Provider
。Provider 作為資料的提供方,可以將資料下發給自身元件樹中任意層級的 Consumer
。
React.createContext:
作用是建立一個 context 物件。
const AppContext = React.createContext(defaultValue)
const { Provider, Consumer } = AppContext
注意,在建立的過程中,我們可以選擇性地傳入一個 defaultValue,當 Consumer 沒有對應的 Provider 時,value 引數會直接取 defaultValue 傳遞給 Consumer。
注意:Cosumer 不僅能夠讀取到 Provider 下發的資料,還能讀取到這些資料後續的更新。這意味著資料在生產者和消費者之間能夠及時同步,這對 Context 這種模式來說至關重要。
例項:
// 定義context方法:
const AppContext = React.createContext(defaultValue)
// 取出方法
const { Provider, Consumer } = AppContext
// 父元件使用Provider, 提供資料
<Provider value={title: this.state.title, content: this.state.content}>
<Title />
<Content />
</Provider>
// 消費者 Consumer, 使用傳遞的資料,這個函式需返回一個元件
<Consumer>
{value => <div>{value.title}</div>}
</Consumer>
相關文章
- 實現基於React的全域性提示元件ToastReact元件AST
- 小程式全域性狀態管理
- 劍走偏鋒之Vue元件通訊(二)——利用provide / inject屬性構建全域性狀態管理Vue元件IDE
- React製作全域性Tooltip文字提示元件React元件
- Flutter 全域性狀態管理之 Provider 初探FlutterIDE
- 微信小程式全域性狀態管理 wxscv微信小程式
- duxapp放棄了redux,在duxapp中區域性、全域性狀態的實現方案APPRedux
- 你可以零侵入式實現小程式的全域性狀態管理嗎
- React專案實現全域性 loading 以及錯誤提示React
- 全域性元件實現遞迴樹,避免迴圈引用元件遞迴
- Vue元件之全域性註冊Vue元件
- React Context API: 輕鬆管理狀態ReactContextAPI
- vue.js全域性元件和區域性元件區別Vue.js元件
- vue定義全域性變數和全域性方法Vue變數
- React新Context API在前端狀態管理的實踐ReactContextAPI前端
- 框架(frameset),全域性屬性框架
- Vue 原始碼解讀(5)—— 全域性 APIVue原始碼API
- 手把手教你擼vue全域性元件Vue元件
- 如何寫一個全域性的 Notice 元件?元件
- 實現elementUI表單的全域性驗證UI
- 全域性變數變數
- CMake 屬性之全域性屬性
- Nginx通過geo模式實現限速白名單和全域性負載均衡 - 運維筆記Nginx模式負載運維筆記
- vue2.0全域性路由守衛(全域性控制登入)Vue路由
- 在Vue3中如何實現四種全域性狀態資料的統一管理?Vue
- Java 實現系統全域性快捷鍵繫結Java
- 鴻蒙系統(HarmonyOS)全域性彈窗實現鴻蒙
- Vue+ElementUI建立全域性元件方法及呼叫VueUI元件
- 微信小程式的全域性彈窗以及全域性例項微信小程式
- 超全域性陣列有哪些?超全域性陣列有什麼作用?陣列
- 10分鐘讓你實現在APP中對網路狀態變化進行全域性提示APP
- Flutter 全域性彈窗Flutter
- 全域性 DOM 變數變數
- android全域性修改字型Android
- 全域性獲取HttpContextHTTPContext
- Application全域性應用APP
- 手挽手帶你學VUE:二檔 元件開發以及常用全域性apiVue元件API
- 以太坊中的全域性屬性