一.什么是Redux?

Redux是一个第三方状态管理的js库,它不仅仅可以适用于react框架,还可以用于其他的vue,auglar等框架。只不过react的生态中不包括一个状态管理的库而已,所以与react配合使用较为好。

二.神魔时候要使用Redux来管理状态

当我们多个组件共享状态的时候最好使用Redux来管理,方便组件间数据的共享。当咱们没有涉及组件间数据共享的时候尽量不要使用Redux

二.Redux的三个核心要素

1. actions

actions可以说是一个让reducer执行不同函数的supporter, 它为reducer传入type来让reducer来执行不同的修改数据方式,并且把data传给reducer。所以actions的类型要是一个对象,并且咱们可以把actions抽离出去封装到一个工厂函数中如下:
/*./redux/actions.js*/
export const increament = (num)=> {
return {
type: 'INCREAMENT', //type属性由于要跟reducer中的相同所以我们可以把它抽离出去./redux/actions-type.js
data: num
}
}

2.reducer

reduce是一个返回state的纯函数,里头要对state的值进行处理。
/*./redux/reducer.js*/
export default count = (state=0, action)=> { //state需要在这里直接赋予默认值,因为每个状态都有初始状态
switch (action.type) {
case "INCREMENT":
return state + 1
default:
return state
}
}

3.Store

store是一个连接state,reducer的仓库,其中提供了三种api供我们来操作
  • store.getState() : 用来获取仓库中数据,返回state
  • store.dispitch(action): 用来调用reducer来修改state, action需要传入的类型是一个对象
  • store.subscribe(()=> {}): 当store中的数据改变时会进行调用, 由于store中数据改变不会使页面重新渲染,所以我们在入口文件中可以把reactDom.render()放入其中来实现类似于数据响应式的作用。
/*./redux/store.js*/
import {createStore} from 'redux'
import reducer from './reducer.js/
export const count = createStore(reducer)
//然后在index.js的入口文件中引入,通过属性赋值传递给需要的组件

最新文章

  1. win7搭建双系统ubuntu
  2. visual studio 2015连接到MySql相关问题
  3. sql复习第五次
  4. 【记录】JS 获取 URL 中文参数编码
  5. 【CoreData】 简单地使用
  6. 如何更快的删除String中的空格[未完]
  7. 配置文件之SharedPreferences
  8. Oracle的不完全恢复
  9. 解决jquery $符号的冲突
  10. ubuntu 安装 Tomcat
  11. linux下svn客户端报错Cannot negotiate authentication mechanism的解决方法
  12. 第一篇文章-VS的Local DB数据库连接失败,创建实例失败的解决方案
  13. fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
  14. java BingInteger生成2进制String循环移位时长度自动缩减
  15. Go语言嵌入类型
  16. CodeForces 516A Drazil and Factorial 动态规划
  17. 利用Redis发布订阅完成tomcat集群下的消息通知
  18. 目标检测-ssd
  19. Derek解读Bytom源码-孤块管理
  20. [日志log] 常用log日志记录方式对比和详解

热门文章

  1. cnblogs 博客爬取 + scrapy + 持久化 + 分布式
  2. 64位手机无法加载x5(libmttwebview.so is 32-bit instead of 64-bit)
  3. (七)四种常见的post请求中的参数形式
  4. NAT网络地址转化和DHCP
  5. qemu-guest-agent详解
  6. RocketMQ系列(七)事务消息(数据库|最终一致性)
  7. Windows 程序设计(4) MFC-02 基本控件-上
  8. javaScript深入浅出之理解闭包
  9. Oracle调用Java方法(下)复杂Jar包封装成Oracle方法以及ORA-29521错误
  10. 【String注解驱动开发】你了解@PostConstruct注解和@PreDestroy注解吗?