上节课我们介绍了纯函数的概念,这节课我们来进入redux
的最后一个阶段,就是查漏补缺,我们把之前那些写的不规范的都给修改一下,大家可以酌情跳过这一节
回顾
在开始这节课的内容之前,我们来对上节课的内容来做一个简单的回顾:
redux
中的reducer
必须是纯函数- 纯函数中不得执行任何有副作用或不纯的函数
- 纯函数中不许修改参数数据
以上便是上节课的内容,接下来我们来开始我们这节课的内容
概述
这节课我们没有什么重要的知识点,我们只是把之前不规范的地方改一下,我们就不多赘述了,直接贴代码了。
汇总reducers
// redux/reducers/index.js import { combineReducers } from 'redux'; import sum from './sum'; import person from './person'; export default combineReducers({sum, person}) // store.js import { createStore, applyMiddleware } from 'redux'; import thunk from 'redux-thunk'; import reducers from './reducers'; export default createStore(reducers, applyMiddleware(thunk));
我来看上面这段代码,如果说我们项目中有 40 多个reducer
,那么就要在store
里面引入 40 多次,这也太麻烦了,所以我们都是单独用一个文件来引入并汇总然后传给store
精简action
import { INCREMENT, DECREMENT } from "../constant" export const increment = data => ({ type: INCREMENT, data }); export const decrement = data => ({ type: DECREMENT, data }); export const asyncIncrement = (data, time) => { return dispatch => setTimeout(() => { dispatch(increment(data)) }, time); }
我们在这里是不是直接把之前的createXxxxxAction
直接简写一下啊?我们都把action
的文件全都放在actions
文件夹下了,没必要在写这么多废话了啊。
精简容器组件
import React, { Component } from 'react' import { connect } from 'react-redux'; import { increment, decrement, asyncIncrement } from '../../redux/actions/sum'; class Sum extends Component {...} export default connect( state => state, { increment, decrement, asyncIncrement } )(Sum);
我们都把action
的函数名改了,那么在传的时候直接触发对象简写方式就行了啊
以上便是对整个项目的精简
Copyright statement:The articles of this site are all original if there is no special explanation, indicate the source please when you reprint.
Link of this article:https://work.lynchow.com/article/redux_final/