react-redux-轻松搞定-2-reducer-action拆分(一)

简介: react-redux语法基础这篇文章我们在项目中使用下state也可以按需拆分这节我们主要拆分reducer

1.前言


react-redux语法基础

这篇文章我们在项目中使用下

state也可以按需拆分

这节我们主要拆分reducer


let onlyState = {
    counter: 0,
    page404: {},
    address: {},
    my:{}
}

整个程序只有单一的 state,是一个state树对象,各个界面的拆分是主树干


2. 入口配置 index.js



// redux存储器
import store from "./store"
// 注入store
import { Provider } from 'react-redux'
ReactDOM.render(
  <React.StrictMode>
    <Provider store={store}>
     <App />
    </Provider>
  </React.StrictMode>,
  document.getElementById('root')
);



3.reducer


1.每个模块有一个reducer ,拆完在组合起来

2.首先在根store里面进行修改


// 引入合并函数
import { createStore ,combineReducers} from "redux";
import reducer404 from '../pages/404/store/reducer404.js'
// 合并reducer
let allReducers = combineReducers({
    page404:reducer404 
})
let store = createStore(allReducers)

combineReducers合并函数 ,合并各个界面的分支reducer


4.reducer完全拆分


1.reducer404 位置 src/pages/404/store/reducer404.js

2.剪切 store里面的 reducer相关内容 (我是在之前课件基础上进行改的,所以剪切),之前没写过直接配置也一样

  1. 需要管理的state配置
  2. reducer配置


// 初始状态
let defaultState = {
    counter: 0, 
}
// redux的核心配置,中间处理器 ,记录状态的改变
function reducer404(state=defaultState,action){
    switch (action.type){
        case "counter/incremented":{
            let tempState = JSON.parse(JSON.stringify(state));
            tempState.counter += action.payload
            return tempState
        }
        case "counter/decremented":{
             return{
                 ...state,
                 counter:state.counter - action.payload
             }
        }
        default:{
            console.log("switch  默认")
            return state
        }
    }
}
export default reducer404



5.合并reducer


store文件

5.1 核心代码


// 引入合并函数
import { createStore,combineReducers  } from 'redux'
// 引入模块的reducer
import reducer404 from '../pages/404/store/reducer404'
// 合并reducer,并返回所有的reducer
let allReducers = combineReducers({
 // 通过page404 找404 模块的reducer
    page404: reducer404
})
let store = createStore(allReducers)
export default store


5.2 combineReducers 作用

默默的产生了一个最大的state, 整个程序只有单一的 state,是一个state树对象,各个界面的拆分是主树干


bigState = {
         page404:{counter:0},
         address:{},
         my:{},
         friend:{}
  }



6.  redux 常规用法


还是404 界面练手

vscode安装了React Redux ES6 Snippets插件

6.1 基本结构 connect链接函数

直接打connect 会生成基本结构代码

略加修改就可以了


import { connect  } from 'react-redux'
export default connect(mapStateToProps, mapDispatchToProps)(Component404)




相关文章
|
前端开发
React实战笔记134-拆分RTK代码2
React实战笔记134-拆分RTK代码2
84 0
React实战笔记134-拆分RTK代码2
|
前端开发
react实战笔记142:拆分RTK代码1
react实战笔记142:拆分RTK代码1
59 0
react实战笔记142:拆分RTK代码1
|
JavaScript 前端开发
react-redux-轻松搞定-2-reducer-action拆分(二)
react-redux语法基础 这篇文章我们在项目中使用下 state也可以按需拆分 这节我们主要拆分reducer
157 0
react-redux-轻松搞定-2-reducer-action拆分(二)
|
Web App开发 前端开发 JavaScript
从性能角度看react组件拆分的重要性
React是一个UI层面的库,它采用虚拟DOM技术减少Javascript与真正DOM的交互,提升了前端性能;采用单向数据流机制,父组件通过props将数据传递给子组件,这样让数据流向一目了然。一旦组件的props或则state发生改变,组件及其子组件都将重新re-render和vdom-diff,从而完成数据的流向交互。
2284 0
|
7月前
|
设计模式 前端开发 数据可视化
【第4期】一文了解React UI 组件库
【第4期】一文了解React UI 组件库
373 0
|
7月前
|
存储 前端开发 JavaScript
【第34期】一文学会React组件传值
【第34期】一文学会React组件传值
79 0
|
7月前
|
前端开发
【第31期】一文学会用React Hooks组件编写组件
【第31期】一文学会用React Hooks组件编写组件
82 0
|
7月前
|
存储 前端开发 JavaScript
【第29期】一文学会用React类组件编写组件
【第29期】一文学会用React类组件编写组件
78 0
|
7月前
|
前端开发 开发者
【第26期】一文读懂React组件编写方式
【第26期】一文读懂React组件编写方式
65 0
|
7月前
|
资源调度 前端开发 JavaScript
React 的antd-mobile 组件库,嵌套路由
React 的antd-mobile 组件库,嵌套路由
127 0