Redux 笔记整理

news/2024/10/31 1:32:00/

Redux

核心概念:storeactionreducer

  • store(斯道尔):仓库,存储了数据,管理者(一个项目只有一个仓库),管理 action 和 reducer
  • action:“专家”,只提想法不干活(动作)
  • reducer(瑞丢色儿):劳动者,搬砖的人

redux-action - 一个对象或者行为的抽象(要做的事情)【eg:点按钮+1 的事】

  • 包括2个属性:

    • type:标识属性,值为字符串,唯一,标识将来要执行的动作【必须】

    • data:数据属性,值类型任意,可选属性

      【id 为 ADD的action 要 +1 】

      const addNum = {type:"ADD" ,1
      }
      
  • 两种类型:

    • Object:同步action
    • function:异步action

readux-action create 用一个函数去动态创建action,dispatch是派发任务

const addNum = (count)=>{return{type:"ADD",count}
}
const addNum = (count)=>({ type:"ADD",count })
// 这个就可以加2了
dispatch(addNum(2))

redux-reducer- (做事情)必须是一个纯函数,用来处理action的逻辑

【纯函数: 返回新数据, 保证不改变原数据 】

state 需要有默认值,就是redux的初始值,内部需要判断action的type判断,但是处理的时候不能修改原数据,如果需要未声明的type.要返回原来的state

function reducer1(state = 0, action ){if(action.type === "ADD") {return state+1} else {return state}
}
const reducer1 = (state = 0, action) => {switch (action.type) {case 'ADD':// 返回新的statereturn state + 1}default:return state
}

redux-state - 数据存储(本质上是一个状态树,保存了所有对象的状态)

​ getState():得到state;

​ dispatch(action):分发action,触发reducer调用,产生新的state;

​ subscribe(listener):注册监听(订阅),当状态发生变化,就会执行(执行的方法自己写)。

//   创建store
const { createStore } = window.Redux
//   createStore(reducer函数,可选=>state初始值)
let store = createStore(reducer1)
// 打印初始状态
console.log(store.getState()) // {count: 1}
// 每次 state 更新时,打印日志
// subscribe() 订阅 返回一个函数用来注销监听器
const unsubscribe = store.subscribe(() => console.log(store.getState()))
// 发起一系列 action
store.dispatch(addNum(2))
store.dispatch(addNum(4))
// 停止监听 state 更新
unsubscribe();

http://www.ppmy.cn/news/281978.html

相关文章

Kafka有几种消费者分区分配策略?

Range范围分配策略 Range范围分配策略是Kafka默认的分配策略,它可以确保每个消费者消费的分区数量是均衡的。 注意:Rangle范围分配策略是针对每个Topic的。 配置 配置消费者的partition.assignment.strategy为org.apache.kafka.clients.consumer.Ran…

MR 用两步计算 GI

第一步,光源发射很小的并带有能量的小包裹 ( 我们叫它光子 (photons)) 发射到场景中。我们 要追踪这些光子在场景中反弹的路线。其中一些光子会被物体吸收或被反弹到无限远的空间 里。当光子与一个物体相撞,它可以被反射,发射或吸收。当一个…

Java 异常处理和最佳实践(含案例分析)

概述 最近在代码 CR 的时候发现一些值得注意的问题,特别是在对 Java 异常处理的时候,比如有的同学对每个方法都进行 try-catch,在进行 IO 操作时忘记在 finally 块中关闭连接资源等等问题。回想自己对 java 的异常处理也不是特别清楚&#x…

华为交换机抓包

1.登录交换机,找一个合适的空闲端口,作为观察口(观察口的端口速率至少与镜像口持平)#observing-port 1 interface GigabitEthernet 0/0/6 (将G0/0/6作为观察口,编号为3) 全局下: 2.进入异常流量…

华为交换机堆叠配置

CE68系列: 完成交换机A堆叠配置 system-view sysname SwitchA stack stack member 1 priority 150 stack member 1 domain 10 quit commit 业务口加入堆叠组 interface stack-port 1/1 port member-group interface 40ge 1/0/1 to 1/0/2 y quit commit 配置后重…

华为交换机配置(一)

前置条件:交换机功能正常但前期使用情况不明,需要重置再进行使用。 准备条件: 物料准备:华为交换机配置PCconsole线USB转串口线电源线网线1根 软件准备:USB转串口驱动Xshell等远程仿真终端工具 配置步骤&#xff1a…

华为二层交换机配置命令详解

配置交换机,从基础开始。 以下是配置的交换机命令。(HUAWEI S3000) 本人认为有五个步骤是重点(红色字体) 配置过程(// 后面为注释) 1.改变中文模式 language-mode chinese //习惯英语的可以不用…

华为设备三层交换机与路由器对接上网

1.配置LSW1 (1)配置连接用户的接口和对应的VLANIF接口 [LSW1]vlan batch 10 20 [LSW1-GigabitEthernet0/0/1]port link-type access [LSW1-GigabitEthernet0/0/1]port default vlan 10 [LSW1-GigabitEthernet0/0/2]port link-type access [LSW1-GigabitE…