react-redux

redux

数据层的框架,解决react的数据传递问题。react的数据传递仅能在两个有关联的组件之间传递,如果第一层的组件要传递数据到第n层,就会很麻烦,所以需要一个数据层框架。Redux = Reducer + Flux(最初的数据层框架)

Without ReduxWith ReduxOComponent initiating change

redux的工作流程

Redux Flowdispatch(action) (previousState, action)ActionStoreCreatorsnewState(state)P.eactComponentsReducers

将redux的工作流程比作为图书馆借书还书的整个过程

React Component:借书的人

Action Creators:借书的话

Store:图书馆

Reducers:记录书的本

流程(白话):

一个“借书的人” 说了一句“我要借书”的话,之后会在图书馆的“图书记录本”中查找书,找到了书就直接告诉借书的人

Store的工作流程(上面redux工作流程图的一个详解):

一个自定义的组件,要先订阅到store(整个项目的数据的仓库,别忘记了引入)然后要自定义一个action(这个东东就相当于告诉store要更改什么数据,拿到什么数据,个人理解为一个行动步骤)通过dispatch()方法将自定义的“行动”传递给store

在自己建立的store数据的仓库之中(就一文件夹),首先要有一个index.js的文件作为“管理员”(数据的管理)[直接import一个createStore,之后还要用一个数据的列表(数据本子reducer)才能完成的创建一个store,最后返回一个store]

之后还要创建一个数据的列表(数据本子)的文件reducer

(这个文件要有数据(一个数据的对象,包含项目的数据)、还要有一个函数,这个函数完成之前数据(prevState)的拷贝(因为不允许reducer直接修改prevState)得到一份新的数据(newState)通过action来针对newState数据的修改(这里同理不能直接修改prevState数据))

之后这个reducer会返回一个进过拷贝比对得到的newState数据到store(也就是index.js文件)redux的store会自动的用newState替换原来的prevState(内部的)

因为之前在自定义的组件完成了仓库的订阅工作,当仓库的新数据有了,就会告诉订阅这个数据的仓库的组件将新的state替换组件的state

redux的设计与使用原则:

  • store是唯一的
  • 只有store能改变数据(内部自动)
  • reducer必须是一个纯函数(给定固定的输入就一定有固定的输出,不会有任何的副作用)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值