Redux

Redux

1.1 redux理解

1.1.1 学习文档

中文文档:http://www.redux.org.cn

1.1.2 redux是什么

  • redux是一个专门用于做状态管理的JS库(不是react插件库)
  • 它可以用在react、Angular、Vue等项目中,但基本与react配合使用
  • 作用:集中式管理react应用中多个组件共享的状态

1.1.3 什么情况下需要使用redux

  • 某个组件的状态,需要让其他组件随时可以拿到(共享)
  • 一个组需要改变另一个组件的状态(通信)
  • 总体原则:能不用则不用,如果不用比较吃力才考虑使用

1.1.4 redux工作流程

Redux_第1张图片

1.2 redux 的三个核心概念

1.2.1 action

  • 动作的对象
  • 包含两个属性
    • type:标识属性,值为字符串,唯一,必要属性
    • data:数据属性,值类型任意,可选属性
  • 例子: {type: ‘ADD_STUDENT’,data: {name: ‘tom’,age: 18}

1.2.2 reducer

  • 用于初始化状态、加工状态
  • 加工时,根据旧的state和action,产生新的state的纯函数

1.2.3 store

  • 将state、action、reducer联系在一起的对象
  • 如何得到此对象?
    • import {createStore} from ‘redux’
    • import reducer from ‘./reducers’
    • const store = createStore(reducer)
  • 此对象的功能?
    • getStore():得到state
    • dispatch(action):分发action,触发reducer调用,产生新的state
    • subscribe(listener):注册监听,当产生了新的state时,自动调用

1.3 纯函数和高阶函数

1.3.1 纯函数

  • 一类特比的函数:只要是同样的输入(实参),必定得到同样的输出(返回)
  • 必须遵守以下约束:
    • 不得改写参数数据
    • 不会产生任何副作用,例如网络请求,输入和输出设备
    • 不能调用Date.now()或或者Math.random()等不纯的方法
  • redux的reducer函数必须是一个纯函数

1.3.2 高阶函数

  • 理解:一类特别的函数
    • 参数是函数
      的reducer函数必须是一个纯函数

1.3.2 高阶函数

  • 理解:一类特别的函数
    • 参数是函数
    • 返回是函数

你可能感兴趣的:(前端,前端,react.js)