react中redux的使用

Redux 是 JavaScript 应用的状态容器,提供可预测的状态管理。类似于vuex

Redux并不只为react应用提供状态管理, 它还支持其它的框架

使用前,最好先建一个store文件夹,来管理Redux中的状态

 注意: redux可以无视组件层级,对于组件系统来说,redux就是一个第三方的,全局的变量

友情提醒! 一般项目中都是redux 和 react-redux 来搭配使用的,这两者是不同的包,

这里我们就直接来说说react-redux的使用流程

准备工作: 现在src目录下导入 store 和 Provider 然后使用<Provider></Provider>包裹住App

import React from "react";
import ReactDOM from "react-dom";
import "./styles/index.css";
import App from "./App";
import store from "./store";
import {Provider} from "react-redux";
ReactDOM.render(<Provider store={store}><App /></Provider> , document.getElementById("root"));

1. 这是一个store文件下的index.js  专门用来存储状态和修改状态

import { createStore } from "redux";
const initState = 0 //初始化状态
const reducers= (state = initState , action) => { //action就相当于{ type:'add',payload: 2 }
  switch (action.type) {
    case 'add':
      // 返回新的state
      return state + action.payload
    case 'addN':
      // 返回新的state
      return state + action.payload
    default:
      return state
  }
}
const store = createStore(reducers);
export default store;

2. 如何获取到储存的状态以及如何修改状态?

        通过引入 useDispatch 和 useSelector 一个用来获得状态 一个用来发送修改状态请求

dispatch 有两个参数,一个对应名称,一个对应传递的值,可以是一个数字也可以是一个对象

import React  from "react";
import { useDispatch, useSelector } from "react-redux";

export default function Channel() {
    const channels = useSelector((state) => state);//得到储存的状态
    const dispatch = useDispatch(); // dispatch修改状态的一个函数
    return (
        <ul className="catagtory">
           <li>{channels }</li> //使用状态
           <li><button onClick={ ()=>{ dispatch({ type:'Add',payload: 2 }) }}>点击+2</button></li>
        </ul>
    );
}

3. 三个核心概念

action -  reducer -  store

         对应的代码如下

定义reducer

initState = 0
function reducer(state = initState, action) {
  return state
}

----------------------------------------
定义action
const dispatch = useDispatch()
const action1 = { type:'addN', payload: 12 }
dispatch(action1)

获取状态
  const num = useSelector((state) => {
    return state
  })
----------------------------------------
定义store

import { createStore } from 'redux'
// 创建 store
const store = createStore(reducer)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
最新版的 react-redux 使用方法如下: 首先,确保你的项目已经安装了 react-redux 依赖包。你可以使用以下命令安装它: ``` npm install react-redux ``` 或 ``` yarn add react-redux ``` 接下来,你需要创建一个 Redux store。你可以使用 Redux Toolkit 来简化这个过程。首先,导入 `configureStore` 和 `getDefaultMiddleware` 函数: ``` import { configureStore, getDefaultMiddleware } from '@reduxjs/toolkit'; ``` 然后,创建一个 rootReducer 来合并你的所有 reducer: ``` import { combineReducers } from 'redux'; const rootReducer = combineReducers({ // 这里是你的 reducer }); ``` 接着,使用 `configureStore` 函数创建 Redux store。你可以通过传入一个对象来配置 store,例如指定 reducer、middleware 等等。以下是一个示例: ``` const store = configureStore({ reducer: rootReducer, middleware: getDefaultMiddleware() }); ``` 现在,你可以使用 `<Provider>` 组件来将 Redux store 提供给你的整个应用程序。在你的根组件,导入 `<Provider>` 组件和你的 Redux store,然后将其包裹在应用的最外层: ``` import { Provider } from 'react-redux'; ReactDOM.render( <Provider store={store}> <App /> </Provider>, document.getElementById('root') ); ``` 通过将 Redux store 提供给整个应用程序,你可以在应用的任何地方使用 `useSelector` 和 `useDispatch` 钩子来访问 Redux store 的状态和分发 action。例如,在你的组件,你可以这样使用: ``` import { useSelector, useDispatch } from 'react-redux'; const MyComponent = () => { const counter = useSelector(state => state.counter); const dispatch = useDispatch(); // 使用 counter 和 dispatch }; ``` 这就是最新版的 react-redux使用方法。你可以根据你的具体需求,自定义配置和使用其他相关的 react-redux API。希望对你有帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值