redux
redux
2023-10-17|最后更新: 2023-10-17
type
status
date
slug
summary
tags
category
icon
password
Blocking
Blocked by
top
URL
Sub-item
Parent item
 
 

基本概念

Store:保存数据的地方,你可以把它看成一个容器,整个应用只能有一个Store。
State:Store对象包含所有数据,如果想得到某个时点的数据,就要对Store生成快照,这种时点的数据集合,就叫做State。
Action:State的变化,会导致View的变化。但是,用户接触不到State,只能接触到View。所以,State的变化必须是View导致的。Action就是View发出的通知,表示State应该要发生变化了。
Action Creator:View要发送多少种消息,就会有多少种Action。如果都手写,会很麻烦,所以我们定义一个函数来生成Action,这个函数就叫Action Creator。
Reducer:Store收到Action以后,必须给出一个新的State,这样View才会发生变化。这种State的计算过程就叫做Reducer。Reducer是一个函数,它接受Action和当前State作为参数,返回一个新的State。
dispatch:是View发出Action的唯一方法。

工作流程

 
  1. 首先,用户(通过View)发出Action,发出方式就用到了dispatch方法。
  1. 然后,Store自动调用Reducer,并且传入两个参数:当前State和收到的Action,Reducer会返回新的State
  1. State一旦有变化,Store就会调用监听函数,来更新View。
到这儿为止,一次用户交互流程结束。可以看到,在整个流程中数据都是单向流动的,这种方式保证了流程的清晰。
notion image

react-redux是如何工作的?

react-redux 提供两个api;
  • Provider: 从最外部封装整个应用,并向connect模块传递store; (父子组件)
  • connect: (高阶组件)负责连接react和redux
  • 包装原组件:将state,action通过props的方式传入到原组件内部监听store tree变化:使其包装的原组件可以响应state的变化
notion image

react-redux的使用流程?

  • 创建store:(定义state,reducer) (使用Redux中的createStore api创建)
  • 封装应用:通过ReactRedux中的Provider方法把store传递给connect模块
  • connect
zustandhttps
Loading...