发布于 2026-01-06 1 阅读
0

Redux Toolkit 和 React Redux 的基础

Redux Toolkit 和 React Redux 的基础

Redux 环境中的 js 或反应是否会发生?
您可以明确地了解有关形式方向的概念,以使其能够实现实用的功能!

Tabela de conteúdos:

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
}
Enter fullscreen mode Exit fullscreen mode
// exemplo real
import { configureStore } from '@reduxjs/toolkit'

const store = configureStore({
  // em breve vamos adicionar as propriedades aqui
})
Enter fullscreen mode Exit fullscreen mode

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

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

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

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

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

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

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 中的图像<br> View/UI ->dispatch ->action ->reducers ->store ->subscribe ->View/UI

使用 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