Como passar dados entre components sem cair no temido props hell? Simples vamos utilizar a Context Api do próprio ReactJS.
Para utilizar a context api preciamos criar a context propriamente dita, e um provider para prover os dados.
Ao criar uma context vc precisa passar um objeto com as definições do seu conteúdo
import { createContext } from 'React'
interface MyContextProps {
value: string
}
const MyContext = createContext<MyContextProps>({} as MyContextProps)
Para que sua árvore de components consiga utilizar essa context você precisa criar um provedor da context.
<MyContext.Provider value={{ value: 'my string' }}>
<App />
</MyContext.Provider>
Agora tudo que estiver dentro de <App />
ou de qualquer outro component que esteja dentro do provedor da context poderá utilizar os dados context através do hook useContext
import React, { useContext } from 'react'
import MyContext from './contexts/MyContext.ts'
export const App: React.FC = () => {
const context = useContext(MyContext)
return (
<p>{context.value}</p>
)
}
Com o conceito de context você poderá por exemplo controlar a autenticação do seu sistema, ou o tema de seu site para mudar entre dark e light.
Segue o link de um exemplo de um contador usando context api , https://github.com/renatoosaka/context-api-reactjs.
Top comments (0)