Redux Toolkit 和 React Redux 的基础
Redux 环境中的 js 或反应是否会发生?
您可以明确地了解有关形式方向的概念,以使其能够实现实用的功能!
Tabela de conteúdos:
- O que é Redux?
- 商店,我们国家的商店
- Criar coleções usando 切片
- Ler valores com 选择器
- Criando a lógica para alterar valores com 减速器
- Alterando valores usando 行动
- O fluxo final
- Finalização
O que é Redux?
首先,我们将讨论 Redux 和大多数“全球”形式的历史文献,并以 React 为例进行常规讨论。该工具可提供多种应用程序并集中信息。
商店,我们国家的商店
没有 Redux,但全球范围内的所有这些都是在“商店”中进行的。您可以使用React 的Context API提供者。
Aqui vou criar um objeto chamado store, para você tentar pegar uma ideia de como isso érepresentado。
// apenas uma representação visual pra assimilar melhor:
const store = {
// por enquanto
// ela está vazia
}
// exemplo real
import { configureStore } from '@reduxjs/toolkit'
const store = configureStore({
// em breve vamos adicionar as propriedades aqui
})
Criar coleções usando 切片
Indo de fora pra dentro,na nossa store nós podemos criar“slices”,que são coleções nas quais contém bados。 Cada slice é nomeado,e esse nome é utilizado para acessar os seus bados mais pra frente.逻辑学服务于对象:
Vamos adicionar por example 切片 de configurações pra armazenar as coisas do nosso usuário:
// apenas uma representação visual pra assimilar melhor:
const store = {
configuracoes: {
tema: "escuro",
notificacoes: true
}
}
// exemplo real
import { createSlice } from '@reduxjs/toolkit';
const configuracoesSlice = createSlice({
name: 'configuracoes',
// este é o estado inicial, aqui você insere propriedades
// que devem ser inicializadas com este slice logo de cara
initialState: {
tema: "claro",
notificacoes: false
}
});
Ler valores com 选择器
好吧,好吧,你可以吃点东西吗? 不可以切片吗? Éigual um objeto store.configuracoes.tema?
操作起来很简单,但 React 的上下文与选择器无关,因此您可以直接在商店中使用。没有上下文 JS 是正常的(selector pode acabar confundindo com querySelector)。
存在一种“nativa”形式的pegar o valor,存在一种形式的usada na biblioteca“react-redux”,您可以参考以下示例:
Usando apenas o redux toolkit:
const tema = store.getState().configuracoes.tema
使用react-redux:
import {
useSelector,
Provider
} from "react-redux"
/*
OBS: Pra usar o React-Redux, você precisa primeiro
adicionar o Provider dele à sua aplicação:
*/
const App = () => {
return (
<Provider store={store}>
// ...seus componentes
</Provider>
)
}
// Agora sim você pode ler o valor
const componente = () => {
const tema = useSelector(state =>
state.configuracoes.tema
)
}
Criando a lógica para alterar valores com 减速器
Perfeito,我如何配置我们的商店,我们的切片和我们的老爹们的关系...如何解决这些问题,如何修改价值?
对于“Reducers”的使用,我们可以将其切片用于定义或定义使用的逻辑值。包容性与使用Reducer类似,可以使用Reducer来定义价值。
Vamos criar alguns 减速器和 atualizar 商店 para listar eles!
const configuracoesSlice = createSlice({
// propriedades mencionadas acima...
reducers: {
// state é o slice atual
// action.payload é o valor recebido
setarTema: (state, action) => {
state.tema = action.payload
},
setarNotificacoes: (state, action) => {
state.notificacoes = action.payload
}
}
});
// Agora que temos os reducers criados, precisamos
// atualizar a store pra incluir eles!
const store = configureStore({
reducer: configuracoesSlice.reducer
})
Alterando valores usando 行动
Com os 减速器 criados,我们可以改变 os 的价值 do nosso 切片!这是“Action”的全部内容。
执行减速器和执行结果的操作,可以快速执行并调度结果,以便持久保存(齐射)。
Novamente,mostrarei a forma nativa/react-redux
Usando apenas redux toolkit:
// Use o dispatch para salvar a modificação
store.dispatch(
// Use a action passando o novo valor
configuracoesSlice.actions.setarTema("escuro")
)
使用react-redux:
import { useDispatch } from "react-redux"
const Componente = () => {
const dispatch = useDispatch();
// O ato de salvar com dispatch continua igual, mas
// ao invés de vir da store, ele vem do react-redux
dispatch(
configuracoesSlice.actions.setarTema("escuro")
)
}
O fluxo final
使用 Redux Toolkit 和 React Redux 的基础主题有哪些:如何使用 CRUD?
Pois nós conseguimos:
- Criar dados usando Slices
- 使用选择器阅读数据
- 减少器/操作的最佳化
- E também dá pra deletar com 减速机
以下信息是 Redux 的通量示例图:
使用 Redux 的方法,可以更好地实现嵌套的方法,您可以轻松地解决最终问题:
阿尔基沃最终 usando apenas redux toolkit:要点 阿尔基沃
最终 usando react-redux:要点
不同的环境下,环境不同!首先发送 javascript 通信,然后再发送到 React 环境。
Finalização
E é isso pessoal! Agora 为您提供了 Redux Toolkit 和 React Redux 套件!
Espero ter te ajudado de alguma forma, e sinta-se livre para deixar commentários de dúvidas ou Feedback:)
永远不会有Twitter节目,请继续阅读,欢迎!
👋 Até uma próxima.
文章来源:https://dev.to/nickgabe/redux-toolkit-e-react-redux-2o9k
