React.js——初识Redux

前言
    学过Vue的都知道,Vue的全局状态管理是由Vuex完成的。同样的React也有属于它的全局的状态管理,最著名的就是Flux和Redux,并且作为Flux之后出现的Redux,完美的接收了Flux的优点,并很好的弥补了Flux的不足。而Redux则由:Action、Reducer、Store组成。

Action

    在Redux的官方文档是这样描述的:Action是把数据从应用传到store的有效载荷,是store数据的唯一来源,可以通过store.dispatch()将action传到store。简单地理解就是Action是用来描述要操作store的动作标识(即描述发生的事情,并没有进行),Reducer是用于识别特定的动作标识作出特定的状态的变化 (即store的数据变化)


基本语法

	//定义action类型
	const action_type = 'action_type'

	//action创建函数
	export function doSomething(index) {
		return {type: action_type, index}
	}

Reducer

    Reducers则指定了应用状态(Store)的变化,以及响应actions并发送到store,Reducer是专门对state进行计算,返回下一个state。(需要注意的是,在Reducer中只能进行对store数据的变化的操作,不能操作API、或者进行异步操作)


基础语法

	import {combineReducers} from 'redux'
	import action_type from './action.js'

	//定义初始的state值
	const initialState = {
		attrName: 'attrValue'
	}
	
	//创建reducer函数
	function reducerFn(state = initialState, action) {
		switch(action.type) {
			case 'action_type': 
				return Object.assign({}, state, {
					action.action.id
				});
				break;
			default:
				return state;  //必须返回一个state
				break;
		}
	}

	//如果存在多个reducer函数,可以使用Redux提供的combineReducers结合一起
	export defautl combineReducers({
		reducerFn,
		......
	})

Store

    在Redux中Store就是将Reducer、Action联系起来的作用.
    Store的职责:

  • 维持应用的state
  • 提供getState()方法获取state
  • 提供dispatch(action)方法更新state
  • 通过subscribe(listener)注册监听器
  • 通过unsubscribe(listener)返回的函数注销监听器

基本语法

	import {createStore} from 'redux'	
	import reducerFns from './reducers'
	
	let store = createStore(reducerFns)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值