[react] useContext
useContextを使用するには3つのステップがあります.
機能に差はありません.しかし,構成部分の構造がdeep propsであれば,中間段階の構成部分に不要なpropsを加える.
propsが多ければ多いほど、コンポーネント管理が難しくなります.
多くの場合、論理に基づいてサブコンポーネントでフォームを変更し、最上位コンポーネントでAPIを要求する必要がある場合、deep props構造はコード分析を非常に困難にする.
この場合、useContextはかなり良いツールです.
使用方法は簡単で、依存項を必要としない反応器から直接提供されるコンポーネントです.
簡単なサンプルコードを作りました.
useContextを使用すると、すべてのサブコンポーネントがfetchできます.
React Docs : useContext
使用方法
1.Contextの作成
// Context.js
export const LevelContext = React.createContext()
Contextの名前会議はContextです.コンポーネントとして、Pascal Caseを作成します.2. Provider Component
import { LevelContext } from './Context';
const LevelOne = () => {
const fetch = () => console.log('fetch...');
return (
<LevelContext.Provider value={fetch}>
<LevelTwo />
</LevelContext.Provider>
)
}
生成されたContextプロバイダをchildrenにパッケージします.valueに希望する値を入れればいいです.今はLevelContextプロバイダサブアイテムのコンポーネントは、値にアクセスできます.3.userContextとして値を使用
import React from 'react';
import { LevelContext } from './Context';
const LevelTwo = () => {
const { fetch } = React.useContext(LevelContext);
return (
<div>
<button onClick={fetch}>[Level2] I can fetch without props!</button>
</div>
)
}
生成されたContextをインポートし、useContext({생성한 Context})
を使用してfetch分解をインポートします.今ボタンをクリックするとfetchが実行できます!Propsシステムとの違いは何ですか?
機能に差はありません.しかし,構成部分の構造がdeep propsであれば,中間段階の構成部分に不要なpropsを加える.
propsが多ければ多いほど、コンポーネント管理が難しくなります.
多くの場合、論理に基づいてサブコンポーネントでフォームを変更し、最上位コンポーネントでAPIを要求する必要がある場合、deep props構造はコード分析を非常に困難にする.
この場合、useContextはかなり良いツールです.
使用方法は簡単で、依存項を必要としない反応器から直接提供されるコンポーネントです.
Example
簡単なサンプルコードを作りました.
useContextを使用すると、すべてのサブコンポーネントがfetchできます.
Ref
React Docs : useContext
Reference
この問題について([react] useContext), 我々は、より多くの情報をここで見つけました https://velog.io/@devstefancho/react-useContextテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol