![f1bd583583483cf0955e1d0fde305530.png](https://img-blog.csdnimg.cn/img_convert/f1bd583583483cf0955e1d0fde305530.png)
最近在学习react全家桶,于是做了一个基于react-pdf的在线pdf阅读项目,项目地址:
yjf27281181/react-readmegithub.com![4cb9a7e1f308490ac7ebfbb6957ac554.png](https://img-blog.csdnimg.cn/img_convert/4cb9a7e1f308490ac7ebfbb6957ac554.png)
里面一些异步操作(登录,查询数据库等)参考了另外一个博客项目的异步操作,由于之前没有接触过react,猛然看到如此纷繁复杂的处理流程实属懵逼,在知乎也看了不少大牛的文章,但还是觉得通俗性差了一丁点火候,正好称机会记录一下我对redux和redux-saga的理解。
一、为什么要用redux
每一个工具的出现都是为了解决某一个痛点,react的痛点就是繁琐的props和state操作,举个例子:A主页下有个工具栏B,工具栏B下有个按钮,按钮可以更新控件D,但只能通过A->C->D,这个时候如果想要点击B下的按钮更新D,需要将数据作为props从A传到C传到D,然后再在A中写一个函数用来更新这个state,然后把这个函数作为props传入B,作为按钮的点击事件。
由于操作实在过于复杂,你想到能不能直接在B中修改D的state呢?于是redux就诞生了,当然,redux并不是让你能从B组件直接更改D的state,而是通过更改公共state,改完之后再通知D去更新state。下面举个例子说明这个过程。
二、通俗易懂的例子
那么什么是公共state,如何修改公共state呢?到这里,你在别的地方应该已经看到了什么action,纯函数,reducer之类的东西了,如果你还是不懂,请看下面这个例子。
假设你(组件B)的银行账户上有500元(公共state),你想将其中的100元转到别的地方(比如