
react μ€ν°λμμ 리μ‘νΈλ₯Ό λ€λ£¨λ κΈ°μ μ΄λΌλ μ± μ μ μ νκ³ μ΄ μ± μ μ½κ³ λ°°μ΄ κ²μ λ°νμΌλ‘ μμ±λμλ€.
π‘ μ μμ μΌλ‘ μ¬μ©λλ λ°μ΄ν°λ₯Ό κ΄λ¦¬ν λ μ μ©νκ² μ¬μ©λλ κΈ°λ₯
Appμ stateμ λ£μ΄μ κ΄λ¦¬νλ€.propsλ‘ μνλ μνλ₯Ό μ λ¬νλ€.Context APIλ₯Ό μ¬μ©νλ©΄ λ¨ ν λ²μ μνλ κ°μ λ°μμ μ¬μ©ν μ μλ€.Context κ°μ²΄λ₯Ό λ§λ€ λλ createContext ν¨μλ₯Ό μ¬μ©νλ€.Contextμ κΈ°λ³Έκ°μ μ λ¬νλ€.Provider μ»΄ν¬λνΈλ₯Ό μ¬μ©νμ§ μμμ λλ§ μ¬μ©λλ€.const MyContext = createContext(defaultValue);
Provider λ₯Ό μ΄μ©νμ¬ context κ°μ λ°κΏ μ μλ€.Provider μ»΄ν¬λνΈλ value propsμ λ°μμ μ΄ κ°μ νμμ μλ μ»΄ν¬λνΈλ€μκ² μ λ¬νλ€. Contextμ μλ κ°μ΄ νμν μ»΄ν¬λνΈλ€μ Provider μ»΄ν¬λνΈλ‘ κ°μΌλ€.Provider νμμ λ λ€λ₯Έ Provider μ»΄ν¬λνΈκ° μλ κ²μ΄ κ°λ₯νλ©°, μ΄ κ²½μ° νμ Providerμ valueκ° μ°μ μλλ€.Context.Providerμ value props κ°μ΄ λ°λ λλ§λ€ Contextλ₯Ό μ¬μ©νλ νμ μ»΄ν¬λνΈλ€μ΄ 리λ λλ§λλ€.value props μμ μ¬λ¬ κ°λ€μ΄ μλ€κ³ κ°μ ν λ μ»΄ν¬λνΈκ° Contextμμ νΉμ κ°μ μμ‘΄ν κ²½μ°, ν΄λΉ κ° λ§κ³ λ€λ₯Έ κ°μ΄ λ³κ²½λ λλ μ»΄ν¬λνΈκ° 리λ λλ§λλ€.Contextλ₯Ό λΆλ¦¬νμ¬ μμ±νλ€. (ex. StateContext / ActionContext)<MyContext.Provider value={/* μ΄λ€ κ° */}></MyContext.Provider>
Contextμ μλ κ°μ Context.Consumerλ₯Ό μ΄μ©ν΄ μ‘°νν μ μλ€.Context.Consumerμ μμμ ν¨μμ¬μΌ νλ€.Contextμ νμ¬ κ°μ λ°κ³ React elementλ₯Ό λ°ννλ€.<MyContext.Consumer>
{value => /* context κ°μ μ΄μ©ν λ λλ§ */}
</MyContext.Consumer>
Contextμ μλ κ°μ μ¬μ©ν λ Consumer λμ useContextλ₯Ό μ΄μ©ν μ μλ€.const value = useContext(MyContext);
Contextλ₯Ό μ’ λ μ½κ² μ¬μ©νκ³ μΆλ€λ©΄ static contextTypeμ μ¬μ©ν μ μλ€.static contextType κ°μ Contextλ‘ μ§μ νλ©΄ this.contextλ₯Ό μ‘°ννμ λ νμ¬ Contextμ valueλ₯Ό κ°λ¦¬ν€κ² λλ€.class MyClass extends React.Component {
static contextType = MyContext;
render() {
let value = this.context;
/* render something based on the value */
}
}
static contextTypeμ μ μνλ©΄ ν΄λμ€ λ©μλμμλ Contextμ λ£μ΄ λ ν¨μλ₯Ό νΈμΆν μ μλ€.Contextλ§ μ¬μ©ν μ μλ€.