- Published in
Introdução ao Redux no React
- Authors
- Name
- Anderson Eleutério
- Github
- @Anderson-Andre-P
Introdução
O React é uma biblioteca JavaScript popular para o desenvolvimento de interfaces de usuário interativas. À medida que as aplicações React crescem em tamanho e complexidade, o gerenciamento do estado da aplicação pode se tornar um desafio. É aí que entra o Redux, uma biblioteca de gerenciamento de estado que ajuda a simplificar e organizar a lógica de estado em aplicações React.
O que é Redux?
Redux é uma biblioteca JavaScript que permite gerenciar o estado de uma aplicação de forma previsível e consistente. Ele segue o padrão de design Flux e é amplamente utilizado em aplicações React, embora também possa ser usado com outros frameworks JavaScript.
O Redux opera com um único objeto de estado centralizado, chamado de store, que armazena todas as informações relevantes para a aplicação. Qualquer mudança no estado é feita através de ações (actions), que são objetos simples que descrevem o que aconteceu. As ações são enviadas para os reducers, que são funções puras responsáveis por atualizar o estado com base nas ações recebidas.
Conceitos chave do Redux
Existem alguns conceitos chave que você precisa entender ao trabalhar com Redux:
- Actions: São objetos que descrevem as mudanças no estado da aplicação. Elas contêm um tipo (type) que indica o tipo de ação e podem conter outros dados relevantes.
- Reducers: São funções puras que recebem o estado atual e uma ação, e retornam um novo estado atualizado. Os reducers são responsáveis por atualizar o estado da aplicação com base nas ações recebidas.
- Store: É o objeto que contém o estado da aplicação. Ele é criado usando a função
createStore()do Redux e é responsável por manter o estado atualizado e notificar os componentes sobre as mudanças. - Provider: É um componente fornecido pelo pacote
react-reduxque permite que a store seja acessível por todos os componentes da aplicação React. - Connect: É uma função fornecida pelo pacote
react-reduxque conecta os componentes React ao Redux, permitindo que eles acessem o estado e despachem ações.
Exemplo básico de uso do Redux no React
Aqui está um exemplo básico de como usar o Redux em uma aplicação React:
- Instale os pacotes: Execute o seguinte comando no terminal para instalar as dependências necessárias:
npm install redux react-redux
- Defina as ações: Crie um arquivo
actions.jspara definir as ações da aplicação:
// actions.js
export const incrementCounter = () => ({
type: 'INCREMENT_COUNTER',
})
export const decrementCounter = () => ({
type: 'DECREMENT_COUNTER',
})
- Crie o reducer: Crie um arquivo
reducer.jspara definir o reducer da aplicação:
// reducer.js
const initialState = {
counter: 0,
}
const reducer = (state = initialState, action) => {
switch (action.type) {
case 'INCREMENT_COUNTER':
return {
...state,
counter: state.counter + 1,
}
case 'DECREMENT_COUNTER':
return {
...state,
counter: state.counter - 1,
}
default:
return state
}
}
export default reducer
- Crie a store: Crie um arquivo
store.jspara criar a store da aplicação:
// store.js
import { createStore } from 'redux'
import reducer from './reducer'
const store = createStore(reducer)
export default store
- Configure o Provider: No componente raiz da sua aplicação, envolva os componentes com o Provider do Redux para que eles tenham acesso ao estado e possam despachar ações:
// index.js
import React from 'react'
import ReactDOM from 'react-dom'
import { Provider } from 'react-redux'
import store from './store'
import App from './App'
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
)
- Conecte componentes: No componente que precisa acessar o estado ou despachar ações, utilize a função
connectpara conectá-lo ao Redux:
// Counter.js
import React from 'react'
import { connect } from 'react-redux'
import { incrementCounter, decrementCounter } from './actions'
const Counter = ({ counter, increment, decrement }) => {
return (
<div>
<h1>Counter: {counter}</h1>
<button onClick={increment}>Increment</button>
<button onClick={decrement}>Decrement</button>
</div>
)
}
const mapStateToProps = (state) => ({
counter: state.counter,
})
const mapDispatchToProps = {
increment: incrementCounter,
decrement: decrementCounter,
}
export default connect(mapStateToProps, mapDispatchToProps)(Counter)
Neste exemplo, o componente Counter é conectado ao Redux usando a função connect. Ele recebe o estado do contador do Redux através da função mapStateToProps e as ações de incremento e decremento são despachadas através da função mapDispatchToProps.
Conclussão
Espero que esta introdução ao Redux no React tenha lhe proporcionado uma visão geral do uso dessa poderosa biblioteca de gerenciamento de estado. Com o Redux, você pode criar aplicações React mais escaláveis e fáceis de manter.
Se você quiser se aprofundar mais no Redux, recomendo consultar a documentação oficial e explorar projetos e tutoriais adicionais.
Fique à vontade para deixar suas dúvidas e comentários abaixo. Estou aqui para ajudar!
Referências: