react中context的用法是什麼

WBOY
發布: 2022-04-21 17:48:53
原創
2375 人瀏覽過

在react中,context用於共享數據,並且允許數據隔代傳遞;context提供了一種新的組件之間共享數據的方式,不必顯式地通過組件樹的逐層傳遞props ,能夠避免使用大量重複的props來傳遞值。

react中context的用法是什麼

本教學操作環境:Windows10系統、react17.0.1版、Dell G3電腦。

react中context的用法是什麼

Context提供了一種新的組件之間共享資料的方式,允許資料隔代傳遞,而不必顯式的通過組件樹逐層傳遞props。

Context 提供了一種在元件之間共享值的方式,而不必明確地透過元件樹的逐層傳遞 props。如果取得值和使用值的層級相隔很遠,或是需要使用這個值的元件很多很分散,則可以使用Context來共享數據,避免使用大量重複的props來傳遞值。如果只是一個元件需要使用這個值,可以在產生這個值的位置產生這個元件,然後用props層層傳遞到元件實際展示的位置。

基本上使用方式

1、自訂Context

import React from 'react';
 
const ThemeContext = React.createContext('light');
 
export default ThemeContext;
登入後複製

上面的程式碼定義了一個ThemeContext,預設值為'light'。

2、在需要的位置使用Context的Provider

import ThemeContext from './context/ThemeContext.js';
import ThemedButton from './ThemedButton.js';
import './App.css';
 
function App() {
  return (
    
      
); } export default App;
登入後複製

在元件的最外層使用了自訂Context的Provider,傳入value覆寫了預設值,之後子元件讀到的ThemeContext的值就是'dark'而不是預設值'light'。如果Provider有value定義就會使用value的值(即使值是undefined,即未傳入value),則只有當Provider未提供時才會使用定義時的預設值。

3、定義contextType,使用取得到的Context上的值

import React, { Component } from 'react';
import ThemeContext from "./context/ThemeContext.js";
 
class ThemedButton extends Component {
static contextType = ThemeContext;
render() {
return ;
}
}
 
export default ThemedButton;
登入後複製

ThemedButton聲明了contextType是ThemeContext,因此this.context的值就是最近的ThemeContext提供的value,也就是'light'。

效果圖:

react中context的用法是什麼

#推薦學習:《react影片教學

以上是react中context的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!