DEV Community

Cover image for Context Api
Renato Hideki Osaka
Renato Hideki Osaka

Posted on

Context Api

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)
Enter fullscreen mode Exit fullscreen mode

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>
Enter fullscreen mode Exit fullscreen mode

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>
  ) 
}
Enter fullscreen mode Exit fullscreen mode

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.

Screenshoot

Top comments (0)