美文网首页
6-为什么是reducer

6-为什么是reducer

作者: 谷子多 | 来源:发表于2018-06-15 01:13 被阅读0次

reducer是一个函数,为什么叫reducer呢?

它有一种能力,就是从之前的状态变成另一个状态。
首先来看一个方法 : reduce,数组从左到右累加

参数 : 回调函数(初始值,数组每一项),初始值
运行过程 : 每次循环时都会拿到数组当前值,这样就可以实现累加
let aa = [1,2,3,4].reduce((acc,elt)=>{
    return acc+elt
},0)
console.log(aa) //10

reducer的灵感

就来源于reduce,callback其实就是reducer:每次遍历都是基于上一次的值,和当前值进行计算,再计算下一次的值,依次类推。来看一个reducer:

function num(state,action){
}

State是上一次计算完成之后得到的,所以reducer就是通过拿到上一次的state和现在发布的action计算出新的state,reducer就是为了得到新的state。
所以要确保reducer是一个纯函数:确定的输入得到确定的输出,不要有副作用,不要去得到一个全局变量,不要去修改一个全局变量。副作用是指:计算出一个值,但是发起了一个请求,改变了数据,这就是对外部的副作用。
副作用的代码都放到actionCreators里:比如发起ajax请求等。

相关文章

  • 6-为什么是reducer

    reducer是一个函数,为什么叫reducer呢? 它有一种能力,就是从之前的状态变成另一个状态。首先来看一个方...

  • reducer为什么必须是纯函数?

    参考: 1、https://juejin.im/post/5c0398d3e51d453f32195571 2、h...

  • 05从源码角度看combineReducers

    为什么需要多个reducer 如果只有一个reducer,就代表状态管理树的状态只有一个对象,即state. 但是...

  • reducer

    Redux 本身很简单。 当使用普通对象来描述应用的 state 时。例如,todo 应用的 state 可能长这...

  • Redux中间件(一):redux的使用

    Redux Redux是基于Reducer来实现 Reducer 来自数组(Array)中的reduce 例如数据...

  • redux-actions

    为什么使用 redux-actions? reducer使用switch case语句进行action类型判断,当...

  • redux学习

    (1) redux简介 reducer reducer 是一个计划函数,接收旧的 state 和 action,生...

  • Baby购 ——产品需求说明书

    目 录 一、文档介绍...-6- 1.1文档目的...-6- ...

  • 2017-10-28

    '6-

  • Redux笔记

    state值变了,但是组件没被渲染? reducer是一个纯函数,不能在reducer直接修改state。redu...

网友评论

      本文标题:6-为什么是reducer

      本文链接:https://www.haomeiwen.com/subject/yhtpeftx.html