redux的使用

redux的使用

redux的使用主要包括三部分store仓库 reduce函数 action

store仓库里储存着所有公共状态,通过dispatch触发action,reduce函数一直处于监听状态,当有匹配的type时返回其状态。

store

store.js

// applyMiddleware: redux通过该函数来使用中间件
// createStore: 用于创建store实例
import {createStore,applyMiddleware} from 'redux'
//thunk中间件可以支持异步action
import thunk from 'redux-thunk'
// import reducer from './reduce'

import reducer from './reduce'
const store = createStore(reducer,applyMiddleware(thunk))
// console.log(store.getState());
export default store

action

action.js

import { ADDONE } from "./actionTypes"

export const jiaYi=() =>( {
    type:ADDONE
})

其中包括常量的引入
actionTypes.js

export const ADDONE = 'ADDONE';

reduce

reduce.js

import { ADDONE , ADDTWO} from "./actionTypes"
import { combineReducers } from 'redux'


  

  const add = (state=0,action)=>{
    // let newState = JSON.parse(JSON.stringify(state))
    switch(action.type){
        case ADDONE:
            // newState = state.num+1;
            return state+1;
        case ADDTWO :
            // newState = state.num+2;
            return state+2;
        default :
        return state
    }

    
}

const add1 = (state=0,action)=>{
    // let newState = JSON.parse(JSON.stringify(state))
    switch(action.type){
        case ADDONE:
            // newState = state.num+1;
            return state+1;
        case ADDTWO :
            // newState = state.num+2;
            return state+2;
        default :
        return state
    }

    
}

// 合并reduce,并把状态合并成一个大状态
const reducer = combineReducers({
    add,
    add1
  })

export default reducer

Appp

Appp.js


import './App.css';
import { connect } from 'react-redux'
import  { Component } from 'react';
import { jiaYi } from './action';


class Appp extends Component {

  onClick = () => {
    
    console.log(this.props.dispatch(jiaYi()));

  }
  
  render() {
    // console.log(store.getState());

    return (

      <div className="App">
        <button className="btn" onClick={this.onClick}>点击</button>
        <div>{this.props.add}</div>
        {/* 使用了mapStateToProps函数,此时props里面就有dispatch函数,既不用特意写store了 */}
      </div>
    );
  }

}
// o有了这个函数,才能在每次仓库数据发生变化的时候重新渲染
const mapStateToProps = (state) => {
  return {
    // 这个add就是reduce里面的函数
    add: state.add

  }
}

// connect将mapStateToProps这个函数给APPP使用
export default connect(mapStateToProps)(Appp);

最新版的 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、付费专栏及课程。

余额充值