iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >redux工作原理讲解及使用方法
  • 309
分享到

redux工作原理讲解及使用方法

2024-04-02 19:04:59 309人浏览 安东尼
摘要

目录1. redux 是什么?2.redux的原理3. 如何使用 redux?(1).安装redux,创建redux文件夹,建立store.js(2).建立reducers.js(3

1. redux 是什么?

React 只是 DOM 的一个抽象层,并不是 WEB 应用的完整解决方案。react只是一个轻量级的视图层框架,如果要做大型应用就要搭配视图层框架redux一起使用。主要引用于多交互、多数据源的场景,并不是必须使用,但是必须要会。

2.redux的原理

redux的原理,首先用一张图来说明,很容易理解

首先,用户发出 Action。


store.dispatch(action);

然后,Store 自动调用 Reducer,并且传入两个参数:当前 State 和收到的 Action。 Reducer 会返回新的 State 。


let nextState = todoApp(previousState, action);

State 一旦有变化,Store 就会调用监听函数。


// 设置监听函数
store.subscribe(listener);

listener可以通过store.getState()得到当前状态。如果使用的是 React,这时可以触发重新渲染 View。


function listerner() {
  let newState = store.getState();
  component.setState(newState);   
}

3. 如何使用 redux?

(1).安装redux,创建redux文件夹,建立store.js

该文件专门用于暴露一个store对象,整个应用只有一个store对象

安装redux:yarn add redux / npm install redux


//引入createStore,专门用于创建redux中最为核心的store对象
import {createStore,applyMiddleware} from 'redux'
//引入为Count组件服务的reducer
import countReducer from './count_reducer'
//引入redux-thunk,用于支持异步action
import thunk from 'redux-thunk'
//暴露store  
//applyMiddleware 是中间位 中使用thunk
export default createStore(countReducer,applyMiddleware(thunk))

(2).建立reducers.js

  • 1.该文件是用于创建一个为Count组件服务的reducer,reducer的本质就是一个函数
  • 2.reducer函数会接到两个参数,分别为:之前的状态(preState),动作对象(action)

const initState = 0 //初始化状态
export default function countReducer(preState=initState,action){
	// console.log(preState);
	//从action对象中获取:type、data
	const {type,data} = action
	//根据type决定如何加工数据
	switch (type) {
		case 'increment': //如果是加
			return preState + data
		case 'decrement': //若果是减
			return preState - data
		default:
			return preState
	}
}

(3).引入store.subscribe

主要用subscribe监听store中每次修改情况


// 公共 index.js
import store from './redux/store'

//subscribe当store中数据发生变化就会更新数据,写在这里是让全局拥有
store.subscribe(()=>{
	ReactDOM.render(<App/>,document.getElementById('root'))
})

(4). 引入react-redux

react-redux是redux作者封装的一个库,是第三方模块,对Redux进一步简化,提供了一些额外的api(例如:Provider,connect等),使用它可以更好的组织和管理我们的代码,在React中更方便的使用Redux。

下载 react-redux

创建count 文件


//引入Count的UI组件
import CountUI from '../../components/Count'

//引入connect用于连接UI组件与redux
import {connect} from 'react-redux'

-------------------------------------------------------------

function mapStateToProps(state){
	return {count:state}
}
-----------------------------------------------------------------

function mapDispatchToProps(dispatch){
	return {
		jia:number => dispatch(createIncrementAction(number)),
		jian:number => dispatch(createDecrementAction(number)),
		jiaAsync:(number,time) => dispatch(createIncrementAsyncAction(number,time)),
	}
}
//使用connect()()创建并暴露一个Count的容器组件
export default connect(mapStateToProps,mapDispatchToProps)(CountUI)
//改良
export default connect(
	state => ({count:state}),
	
	//mapDispatchToProps的一般写法
	

	//mapDispatchToProps的简写
	{
		jia:createIncrementAction,
		jian:createDecrementAction,
		jiaAsync:createIncrementAsyncAction,
	}
)(Count)


生成action对象,并分别暴露



import {INCREMENT,DECREMENT} from '../constant'

//同步action,就是指action的值为Object类型的一般对象
export const increment = data => ({type:INCREMENT,data})
export const decrement = data => ({type:DECREMENT,data})

//异步action,就是指action的值为函数,异步action中一般都会调用同步action,异步action不是必须要用的。
export const incrementAsync = (data,time) => {
	return (dispatch)=>{
		setTimeout(()=>{
			dispatch(increment(data))
		},time)
	}
}

到此这篇关于redux工作原理讲解及使用方法的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: redux工作原理讲解及使用方法

本文链接: https://www.lsjlt.com/news/158712.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • redux工作原理讲解及使用方法
    目录1. redux 是什么?2.redux的原理3. 如何使用 redux?(1).安装redux,创建redux文件夹,建立store.js(2).建立reducers.js(3...
    99+
    2022-11-12
  • 一文理解Redux及其工作原理
    目录一、是什么二、工作原理三、如何使用小结一、是什么 React是用于构建用户界面的,帮助我们解决渲染DOM的过程 而在整个应用中会存在很多个组件,每个组件的state是由自身进行管...
    99+
    2022-11-13
  • react redux的原理以及基础使用讲解
    目录介绍为什么会使用 redux?什么时候该使用 redux?redux使用场景redux 作用工作流程使用1.下载2.创建仓库store骨架3.生成仓库4.参数函数的创建 redu...
    99+
    2022-11-13
    react redux原理 react redux使用 react redux
  • react-redux及redux状态管理工具使用详解
    目录react-redux使用及原理1、下载 react-redux redux redux-thunk三个依赖包2、配置store对象,用来管理全局状态3、创建reducer.js...
    99+
    2023-01-31
    redux状态管理 react-redux状态管理
  • Gateway网关工作原理及使用方法
    目录1. 什么是 API 网关(API Gateway)分布式服务架构、微服务架构与 API 网关API 网关的定义API 网关的职能API 网关的分类与功能2. Gateway是什...
    99+
    2022-11-12
  • JavaWebServletConfig作用及原理分析讲解
    目录基本概念servlet 关系servletconfig 作用使用获取 config 基础信息携带信息基本概念 servlet 关系 servlet 和 servletconfig...
    99+
    2022-11-13
  • ThreadLocal工作原理及用法案例
    目录ThreadLocal是什么ThreadLocal原理ThreadLocal内存泄漏问题关于InheritableThreadLocal代码示例ThreadLocal使用Inhe...
    99+
    2022-11-12
  • Linux sed工具的使用及工作原理
    目录基础知识sed编辑器: Stream Editor工作原理:sed的基本用法sed的命令格式sed实现自动打印功能(最基本用法)sed选项sed的脚本格式sed脚本的地址格式sed脚本的指令范例sed工具的核心用法:...
    99+
    2022-07-12
    Linux sed工具 Linux sed工具使用
  • Linux sed工具的使用及工作原理
    目录基础知识sed编辑器: Stream Editor工作原理:sed的基本用法sed的命令格式sed实现自动打印功能(最基本用法)sed选项sed的脚本格式sed脚本的地址格式se...
    99+
    2022-11-13
  • ThreadLocal工作原理及用法是什么
    今天就跟大家聊聊有关ThreadLocal工作原理及用法是什么,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。ThreadLocal是什么ThreadLocal是线程Thread中属性...
    99+
    2023-06-22
  • 详解Java线程池的使用及工作原理
    目录一、什么是线程池?二、线程池要解决什么问题?三、线程池的使用四、常用阻塞队列五、线程工厂六、拒绝策略七、线程池的执行逻辑八、execute()方法九、执行流程一、什么是线程池? ...
    99+
    2022-11-12
  • GTK treeview原理及使用方法解析
    GtkTreeView 构件是一个高级的构件,利用他你就可以制作出漂亮的普通列表或者是树状的列表。这个构件里可以包含一或者多行。他的构架呢?正是采用了大名鼎鼎的MVC (Model View Controller) 设计...
    99+
    2022-06-04
    GTK treeview原理
  • Fastadmin中JS的调用方法原理讲解
    目录一、模板顶部引入meta.html二、html模板底部会引入 js 模板三、js入口require-backend.js四、控制器对应JS模块FastAdmin的前端部分使用或涉...
    99+
    2022-12-17
    FastAdmin RequireJS
  • Docker镜像提交命令commit的工作原理以及使用方法
    这篇文章主要讲解了“Docker镜像提交命令commit的工作原理以及使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Docker镜像提交命令commit的工作原理以及使用方法”吧!在...
    99+
    2023-06-04
  • 手机Python编程神器AidLearning的工作原理以及使用方法
    手机Python编程神器AidLearning的工作原理以及使用方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。如果你是个对编程比较感兴趣或者正走在这条康庄大道上的技术宅...
    99+
    2023-06-15
  • Git工作流模式及命令的使用讲解
    目录Git的工作方式集中式工作流功能分支工作流Gitflow工作流维护分支工作流程Forking工作流Pull RequestGit的工作方式 分为集中式工作流、功能分支工作流、Gi...
    99+
    2022-11-13
  • axios拦截器工作方式及原理源码解析
    目录axios 拦截器的配置方式use() 方法的定义拦截器如何执行拦截器回调方法的添加顺序同步执行请求拦截器(顺序执行)异步执行请求拦截器(同时执行)Q&A拦截器是如何工作...
    99+
    2023-02-10
    axios拦截器工作原理 axios 拦截器
  • Linux sed工具的使用及工作原理是什么
    本文小编为大家详细介绍“Linux sed工具的使用及工作原理是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux sed工具的使用及工作原理是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来...
    99+
    2023-07-02
  • Java中​HashMap的工作原理及实现方法是什么
    今天小编给大家分享一下Java中HashMap的工作原理及实现方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Has...
    99+
    2023-06-03
  • C++编译器和链接器工作原理及使用方法完全指南
    目录正文编译器链接器编译器和链接器的工作流程总结正文 C++是一种强类型语言,它的编译和链接是程序开发过程中不可或缺的两个环节。编译器和链接器是两个非常重要的概念。本文将详细介绍C+...
    99+
    2023-05-20
    C++编译器链接器 C++ 编译链接
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作