Redux学习笔记

VCS的增量和分离编译 vcs的增量和分离编译 阅读详情

Redux的设计思想:
1、web应用是一个状态机,视图与状态是一一对应的
2、所有的状态,保存在一个对象里面

Store的概念

store是保存数据的地方,相当于一个容器。整个应用中只有一个store
Redux提供createStore函数,用来生成store

import { createStore } from 'redux';
const store = createStore(fn);

在以上代码中,createStore函数接受另一个函数作为参数,返回新生成的store对象。

State的的概念

store对象包含所有数据。如果想得到某个时点的数据,就要对store生成快照。这种时点的数据集合,就叫做state.
当前时刻的State,可以通过store.getState( )拿到。

import { creatStore } from 'redux';
const store = createStore(fn);

const state = store.getState();

Redux规定,一个State对应一个View。只要State相同,View就相同。即如果知道State,就知道View,反之亦然。

Action的概念

State的变化,会导致View的变化。但是,用户接触不到State,只要接触到View。所以,State的变化必须是View导致的。Action就是View发出的同志,表示State应该要发生变化了。

Action是一个对象,其中的type属性是必须的,表示Action的名称。

const action = {
    type:'ADD_TODO',
    PAYLOAD:'Learn Redux'
};

在上面的栗子中,Action的名称是ADD_T0D0,它携带的信息是字符串Learn Redux。

或者可以这样描述,Action描述当前发生的事情,改变State的唯一办法,就是使用Action,它会运送数据到Store.

Action Creator的概念

View要发送多少中消息,就会有多少种Action。如果要手写,会很麻烦。可以定义一个函数来生成Action,这个函数叫做Action Creator

const ADD_TODO = '添加 TODO';

function addTodo(text){
    return {
        type:ADD_TODO,
        text
}
}
const action = addTodo('Learn Redux');

在上面的代码中,addTodo函数就是一个Action Creator

store dispatch的概念

store.dispatch()是View发出的Action的唯一方法

import { createStore } from 'redux';
const store = createStore(fn);

store.dispatch({
    type:'ADD_TODO',
    payload:'Learn Redux'
});

上面代码中,store.dispatch接受一个Action对象作为参数,将它发送出去。

结合Action Creator,这段代码可以改写如下:

store.dispatch(addTodo('Learn Redux'));

Rdeucer

Store收到Action以后,必须给出一个新的State,这样View才会发生变化。这种State的计算过程就叫做Reducer
Reducer是一个函数,它接受Action和当前State作为参数,返回一个新的State

const reducer = function (state,action){
    //...
    return new_state;
};

整个应用的初始状态,可以做我State的默认值。
例如:

const defaultState = 0;
const reducer = (state = defaultState,action)=>{ 
    switch(action.type){
        case 'ADD':
            return state + action.parload;
        default:
            return state;
}
};
const state = reducer(1,{
    type:'ADD',
    payload:2
});

在上面的栗子中,reducer函数收到名为ADD的Action以后,就返回一个新的State,作为加法计算结果,其他运算的逻辑(比如减法),也可以根据Action的不同方法来实现。
实际应用中,Reducer函数的store.dispatch方法会触发Reducer的自动执行。为此,store需要知道reducer函数,做法就是在生成store的时候,将reducer传入createstore方法

import { createStore } from 'redux';
const store = createStore(reducer );

createStore接受reducer作为参数,生成一个新的store。所以以后每当store.dispatch发送过来一个新的Action,就会自动调用reducer,得到新的state

PointNet/PointNet++模型调参实战:如何用PyTorch让你的点云分割精度再涨5个点? 本文深入探讨了PointNet/PointNet++模型在点云分割中的调参技巧,通过PyTorch实现精度提升5个点的实战方法。重点分析了点云密度自适应策略、感受野与细节保留的平衡,以及训练加速与稳定性技巧,适用于电力巡检、自动驾驶等场景的激光点云数据处理。 阅读详情

相关推荐

海康威视GigE工业相机的python调用demo

默认路径安装完成后,在路径C:\Program Files (x86)\MVS\Development\Samples\Python\BasicDemo下的BasicDemo.py中,海康威视官方提供了基本的调用方法,本文也是基于这个修改的。BasicDemo.py提供了通过枚举选择相机的方法,在官方的另一个DEMO:ConnectSpecCamera.py中提供了另一种不通过枚举,直接访问特定IP相机的方法,也可以参考。另外,如果每台相机都定义了唯一的用户定义名,也可以通过用户定义名来区分相机。

xulibo5828的博客 2108

redux官网学习笔记

Redux 是一个使用叫做 “action” 的事件来管理和更新应用状态的模式和工具库 它以集中式 Store(centralized store)的方式对整个应用中使用的状态进行集中管理,其规则确保状态只能以可预测的方式更新。Redux 是一个小型的独立 JS 库。但是,它通常与其他几个包一起使用:React-Redux、Redux Toolkit、Redux DevTools 扩展。

MissXu666的博客 1019

【日常小结】项目Modbus RTU 协议

Modbus RTU(远程终端) 协议 一、前言 最近因为码跺宽度测量项目推广升级,更换了摄像头(换成了基恩士摄像头)和光栅(换成了施莱格05LCM系列光栅),导致原来的程序用不了了,然而这个软件升级的任务落到了我身上,作为机械非科班出身的我要学习TCP和Modbus RTU通信协议,也算是自我突破了。本文只对Modbus/RTU/HEX 进行简单的小结。 二、Modbus Modbus是一种串行通信协议,是Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻

weixin_39681471的博客 831

redux学习笔记

上周学习了flux,这周研究了一下redux,其实很早之前都已经在研究他们了,只是之前一直没搞懂,最近这两周可能打通了任督二脉,都算入门了。 写博客的目的主要是做一下笔记,总结一下思路,以及和大家交流交流 在介绍redux之前,先回顾一下上周学习的flux:   flux的流程是: view触发action中的方法; action发送dispatch; store接收新的数据进行合并

three_bird的博客 3655

告别“盲开”:手把手教你用MCU内置比较器搞定BLDC无感方波启动(附代码片段)

本文详细介绍了如何利用MCU内置比较器实现BLDC无感方波启动,解决传统无传感器控制中的'盲开'问题。通过虚拟中性点电路设计和三段式启动流程,结合反电动势检测和过零检测技术,提供了一套经济高效的解决方案,并附有可直接移植的代码片段,助力工程师快速实现可靠的无感控制。

weixin_33694172的博客 503

从零到一:基于Docker与OSM数据构建Valhalla路径规划服务及Mapbox风格可视化

本文详细介绍了如何从零开始,基于Docker容器技术快速部署开源的Valhalla路径规划服务。通过获取免费的OSM地图数据并构建路网,最终实现服务调用与Mapbox风格的地图可视化,为出行应用原型开发或本地化路径规划服务提供了一套完整、高效的实践方案。

weixin_29297127的博客 162

React学习笔记九——React-redux的使用详解

const {value} = this.selectNumberconst {count} = this.propsif(count % 2 !== 0){this.props.increment(value*1)}}incrementAscyn= () => {const {value} = this.selectNumberthis.props.incrementAsync(value*1,500)}render(){return( this.selectNumber

2401_84411557的博客 1052

存储硬盘格式怎么把512还原为520格式??

硬盘厂商工具(如SeaChestsg_format)可以调整扇区大小。备份数据,因为调整扇区会清除硬盘内容。根据硬盘型号和接口类型,选择合适的工具进行调整。如果你需要更详细的帮助,请提供你的硬盘型号和存储设备类型。希望如上措施及解决方案能够帮到有需要的你。PS:如若遇到采纳如下方案还是未解决的同学,希望不要抱怨&&急躁,毕竟影响因素众多,我写出来也是希望能够尽最大努力帮助到同类似问题的小伙伴,即把你未解决或者产生新Bug黏贴在评论区,我们大家一起来努力,一起帮你看看,可以不咯。

**My Coding Family** 1145

React-Redux学习笔记

之前用react开发了一些模块,对react的使用也更加熟悉了。最近有空,来总结记录一下react相关生态,系统的梳理一下,便于更好的理解和记忆。 参考资料: React-redux框架之connect()与Provider组件 用法讲解 Redux 类比Vuex,Redux也是用来解决复杂SPA中的全局状态管理问题。通过对比来一起记忆。 三大原则: 单一数据源:整个应用只能有一个唯...

Creabine的博客 428

TIA protal与SCL从入门到精通(1)——SCL编程入门

SCL语言是由Pascal而生的结构化程序语言,与梯形图相(LAD)比,SCL语言的灵活程度更高,易于编写控制算法。 本教程基于的平台如下 软件:TIA 15.1 CPU 1516 (1)直接创建纯SCL的程序块儿; (2)在LAD/FBD中在插入SCL程序段。 在程序段中直接右击插入即可,但是插入的程序段并不能完全使用SCL语法,GOTO等跳转指令就不能使用。在SCL中一般不能使用绝对地址进...

苦走一口田 7万+

修复漏洞Windows 2012 Server R2(CVE-2016-2183)、(CVE-2015-2808)、(CVE-2013-2566)

【代码】修复漏洞Windows 2012 Server R2(CVE-2016-2183)、(CVE-2015-2808)、(CVE-2013-2566)

路~可以走过 2772

Redux 入门学习笔记 ① —— 基本概念及使用

你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】我特地针对初学者整理一套前端学习资料。

m0_61408947的博客 725

A100 NVLink集群极致优化指南

《A100 NVLink集群通信优化指南》摘要:针对A100 80G SXM机型NVLink 3.0集群,提供硬件配置检查方法(nvidia-smi topo -m)和强制启用指令。重点介绍NCCL参数调优(算法选择、低延迟协议配置)、GPUDirect RDMA启用步骤,以及单机/多机场景下的通信模式选择。包含PyTorch all_reduce基准测试方法,并给出带宽异常排查方案(dmesg检查、NCCL缓存重置)。通过CUDA Graph通信重叠和混合精度优化,可实现90%+带宽利用率。附猿界算力监控

2401_89353317的博客 587

Redux小白学习笔记

Redux学习笔记Redux简介StoreactionReducerReact-ReduxconnectmapStateToPropsmapDispatchToPropsProviderredux-thunkaction creator Redux 本篇学习笔记是针对自己的项目所写的,所以有看不懂的地方要或者更多的注释和细节需要参加全栈小项目(react+redux+koa+mongo)中的(/client/src)部分,欢迎点赞支持~ 简介 首先关于react中redux环境的搭建: cnpm i red

weixin_42280395的博客 622

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

【超全】React学习笔记 下:路由与Redux状态管理

几十万字超全的React学习笔记,包学包会

weixin_43654363的博客 1258

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

学习笔记:redux-saga

redux-saga学习笔记 基础概念 使用Saga Helpers 第一个函数 takeEvery是最为常见的,它提供了类似 redux-thunk的行为。 import {takeLatest,takeEvery} from 'redux-saga' 如果你有多个Saga 监视不同的action ,你也一用内置辅助函数创建很多的观察者。就像是用fork来派生一样。 声明式Effe...

qq_31445163的博客 293

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

redux与react-redux学习笔记

少年驰骋,仗剑天涯 愿你眼眸有星辰,心中有大海 从此,以梦为马,不负韶华 redux 是一个应用数据流框架,主要是解决了组件间状态共享的问题,原理是集中式管理。 React-redux是为方便react使用,在redux上封装的库。在实际的项目中我们可以使用redux也可以直接使用react-redux。 1.redux 1.redux的概念 redux和react之间是没有关系的,Redux支持React、angular、jQuery甚至Javascript redux 是一个应用数据流框架,主要是解.

yezi__6的博客 2483

Redux 学习笔记

这里写自定义目录标题1、什么是Redux2、配置Redux3、TodoList案例4、Redux-thunk中间件5、Redux中间件执行原理6、react-redux7、数据持久化7.1、基本用法7.2、整合react-redux 1、什么是Redux Redux 是React生态中重要的组成部分。很多人都说,简单的应用可以不用此工具。但是我个人认为,中小型应用使用的话,可以使文件结构更加规范,代码可读性更强。因为React提出将展示组件与容器组件分离的思想,所以降低了React 与Redux之间的耦合度

estrusKing的博客 270

Redux-学习笔记

文章目录Redux-学习笔记安装ReduxRedux简介(为什么要用Redux?)Redux和ReactReact-reduxredux-actions使用项目打包 Redux-学习笔记 安装Redux redux需要安装以下依赖: cnpm install redux --save cnpm install react-redux --save cnpm install redux-actions --save @connect装饰器报错处理 因为用到了es6/7的语法,需要安装babel转码 npm

小猴子的博客 181

React学习笔记---redux

redux一、redux理解1、学习文档2、redux是什么3、什么情况下需要使用redux4、redux工作流程二、redux的三个核心概念 一、redux理解 1、学习文档 英文文档: https://redux.js.org/ 中文文档: http://www.redux.org.cn/ Github: https://github.com/reactjs/redux 2、redux是什么 redux是一个专门用于做状态管理的JS库(不是react插件库)。 它可以用在react, angula

丑小鸭变黑天鹅的博客 1553

redux与react-redux的学习笔记之redux

redux是 JavaScript 状态容器,提供可预测化的状态管理,是一个独立的库可以搭配UI框架进行使用。 与redux稍加不同的是,react-redux是 React 的官方 Redux UI 绑定库,可以订阅 store、检查更新数据和触发重新渲染的过程可以变得更加通用和可复用。 简单的说,react-redux最终还是使用redux去取数据,不过是封装一层方便使用redux的api。 相对于Vuex的简单无脑操作,这两个算是稍微麻烦一点的。不过后续阿里封装了个hox,使用起来感觉简单了很多。

chenacxz的博客 500
上一篇: git无法关联远程仓库解决方法
下一篇: git多账户配置
Crazier_qi
博客等级 码龄11年 13粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值