[TIL]10月1日Context-API,グローバルステータス
14440 ワード
Propsについて
フォルダ構造の区分から、主にサブエレメントからprops、親エレメントから複数の使用に渡され、この部分では効率が悪いところがあります.
presenterファイルでindexで定義した関数を使用する場合は、次のpropsプロシージャを実行する必要があります.
props例(Index)
このセクションがより複雑な場合は、手順を追加します.
ContextAPI?
サイトのページが増えるにつれて、stateの数も多くなり、管理するstateも多くなり、分散していると、stateの場所を探すのも難しくなります.
ContextAPIを使用すると、最上位の親要素が宣言した内容をスキップして使用できます.
ContextAPIの例(Index)
親インデックスからreactからcreateContextをインポートし、変数に含めてエクスポートする方法を使用します.
(これは、サブエレメントに提供されることを意味するようです.)
フォルダ構造の区分から、主にサブエレメントからprops、親エレメントから複数の使用に渡され、この部分では効率が悪いところがあります.
presenterファイルでindexで定義した関数を使用する場合は、次のpropsプロシージャを実行する必要があります.
props例(Index)
import PropsContainer from "./Props.container";
export default function PropsPage() {
return (
<PropsContainer
isProps={isProps}
/>
)
}
props例(Container)import PropsUI from "./Props.presenter";
export default function PropsContainer(props) {
return (
<PropsUI
isProps={props.isProps}
/>
)
}
props例(presenter)export default function PropsUI(props) {
return (
<div>
{props.isProps}xxxx
</div>
);
}
presenterでindexで定義した内容を使用するには、このような不要な伝達プロセスが必要です.このセクションがより複雑な場合は、手順を追加します.
ContextAPI?
サイトのページが増えるにつれて、stateの数も多くなり、管理するstateも多くなり、分散していると、stateの場所を探すのも難しくなります.
ContextAPIを使用すると、最上位の親要素が宣言した内容をスキップして使用できます.
ContextAPIの例(Index)
import ContextContainer from "../../../src/components/units/24-context-api/Context.container";
import { createContext } from "react";
export const MyContext = createContext(null);
export default function ContextPage() {
const value = {
isEdit: true,
};
return (
<MyContext.Provider value={value}>
<ContextContainer />
</MyContext.Provider>
);
}
ContextAPIの例(Container)import ContextUI from "./Context.presenter";
export default function ContextContainer() {
return <ContextUI></ContextUI>;
}
ContextAPIの例(Presenter)import { useContext } from "react";
import { MyContext } from "../../../../pages/quiz/20-02-context";
export default function ContextUI() {
const { isEdit } = useContext(MyContext);
return <div>{isEdit ? "수정하기" : "등록하기"}</div>;
}
Context APIを使用すると、中間コンテンツをスキップし、プレゼンテーションでIndexの要素を使用できます.親インデックスからreactからcreateContextをインポートし、変数に含めてエクスポートする方法を使用します.
import { createContext } from "react";
export const MyContext = createContext(null);
次にreturnの上部に渡す値を定義し、インポートしたサブ要素をラベルで囲みます.プロバイダに記入します.(これは、サブエレメントに提供されることを意味するようです.)
export default function ContextPage() {
const value = {
isEdit: true,
};
return (
<MyContext.Provider value={value}>
<ContextContainer />
</MyContext.Provider>
);
}
受信ページでは、import { useContext } from "react";
import { MyContext } from "../../../../pages/quiz/20-02-context";
2種類をインポートし、変数を宣言して使用すると有効になります.export default function ContextUI() {
const { isEdit } = useContext(MyContext);
return <div>{isEdit ? "수정하기" : "등록하기"}</div>;
}
ContextAPIを適用します.jsに適用するとapp.jsは、すべてのstateを管理し、サブ要素に配布することができます.Reference
この問題について([TIL]10月1日Context-API,グローバルステータス), 我々は、より多くの情報をここで見つけました https://velog.io/@sangki2070/TIL-10월-1일-Context-API-GlobalStateテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol