redux的详细介绍和使用!
三层
视图(view)
数据商店(store)
reducer
流程: 用户操作视图 视图产生action 通过store转发给reducer(同时还会接收store中的数据模型 state)
由reducer结合aciton.type以及state 产生新的 state 然后返回给 store
store在接收到新的state后 通知视图进行更新
redux使用:
需要安装2个模块
    npm i redux react-redux -S
创建store
    import redux from "redux"
export let store = redux.createStore(reducer)
reducer的定义
    export let reducer = (state={title:""},action){
        switch(action.type){
            case "xxx":
                return newState = {...state,xxx:ddd}
                break
            default:
                return state
        }
    }
视图内使用
    绑定更新视图函数
    this.unbind = store.subscribe(()=>{})
    解绑更新视图函数
    this.unbind()
发送action
    sotre.dispatch(action)
工具方法
    1自动生成容器组件
前提  整个应用需要用<Provider>包裹起来 并且要注入store 例如:
        import {Provider} from "react-redux"
let App = props => (
            <Provider store={store}>
                <Router>
                    <Switch>
                        <Route />
                        ....
                    </Switch>
                </Router>
            </Provider>
        )
render(<App/>,docu....)
然后在UI组件内 导入connect方法
import {connect} from "react-redux"
class UI extends React.Component{
        ...
    }
let mstp = state => {
        return {
            title : state.home.title
        }
    }
    //在组件内  使用  this.props.title
let mstp = dispatch => {
        return {
            sayHello : function(){
                ....
            }
        }
    }
//在组件内使用sayHello方法  :   this.props.sayHello()
    //如果在函数中要发送action 则调用dispatch即可
export let Home = connect(mstp,mdtp)(UI)
合并reducer
    可以对reducer按照功能或者页面进行划分成多个小的reducer
    然后通过 combineReducers  具体如下
let reducer1 = (state={...},action)=>{
        ...
    }
let reducer2 = (state={...},action)=>{
        ...
    }
import {combineReducers} from "redux"
export let reducer = combineReducers({
        home : reducer1,
        list : reducer2
    })
参考网站:https://segmentfault.com/a/1190000011474522?utm_source=tag-newest
redux的详细介绍和使用!的更多相关文章
- vue对比其他框架详细介绍
		
vue对比其他框架详细介绍 对比其他框架 — Vue.jshttps://cn.vuejs.org/v2/guide/comparison.html React React 和 Vue 有许多相似之处 ...
 - [No0000A7]批处理经常用到的变量及批处理>NUL详细介绍
		
绝对路径是指调用绝对的程序位置的路径,例如: start C:\Windows\test.exe 相对路径是文件改变路径以后还会按照变量的路径所在位置去调用,例如: start %WINDIR%\te ...
 - linux配置网卡IP地址命令详细介绍及一些常用网络配置命令
		
linux配置网卡IP地址命令详细介绍及一些常用网络配置命令2010-- 个评论 收藏 我要投稿 Linux命令行下配置IP地址不像图形界面下那么方 便,完全需要我们手动配置,下面就给大家介绍几种配置 ...
 - _MSC_VER详细介绍
		
_MSC_VER详细介绍 转自:http://www.cnblogs.com/braver/articles/2064817.html _MSC_VER是微软的预编译控制. _MSC_VER可以分解为 ...
 - php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系
		
以下PHP CGI.Fastcgi.PHP-FPM的一些信息归纳和汇总----->详细介绍与之间的关系 一:CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的 web ...
 - RabbitMQ消息队列(一): Detailed Introduction 详细介绍
		
http://blog.csdn.net/anzhsoft/article/details/19563091 RabbitMQ消息队列(一): Detailed Introduction 详细介绍 ...
 - doT.js详细介绍
		
doT.js详细介绍 doT.js特点是快,小,无依赖其他插件. 官网:http://olado.github.iodoT.js详细使用介绍 使用方法:{{= }} for interpolati ...
 - Linux截屏工具scrot用法详细介绍
		
Scrot是Linux命令行中使用的截图工具,能够进行全屏.选取等操作,下面小编将针对Scrot截图工具的用法给大家做个详细介绍,通过操作实例来学习Scrot的使用. 在Linux中安装Scrot ...
 - Oracle Merge into 详细介绍
		
Oracle Merge into 详细介绍 /*Merge into 详细介绍MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句.通过MERGE语句,根据一张表或子查 ...
 
随机推荐
- swif(六)swift闭包
			
// // main.swift // LessonSwiftSix // // Created by keyan on 15/9/13. // Copyright (c) 2015年 keyan. ...
 - 【LeetCode】437. 路径总和 III
			
437. 路径总和 III 给定一个二叉树,它的每个结点都存放着一个整数值. 找出路径和等于给定数值的路径总数. 路径不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点 ...
 - [转]HotSpot VM GC 的种类
			
原文地址:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037029.html collector种类 GC在 HotSpot VM 5.0里 ...
 - Matplotlib Date Index Formatter 日期索引格式化学习
			
官方网站:https://matplotlib.org/gallery/ticks_and_spines/date_index_formatter2.html#sphx-glr-gallery-tic ...
 - Jmeter(二)响应内容乱码解决办法
			
Jmeter请求编码设置为UTF-8,响应内容依然乱码,可在Jmeter安装路径bin\jmeter.properties中设置默认编码为UTF-8,于是问题得以解决:
 - 【矩阵快速幂】之奥运 hdu 2254
			
1.城市的编号不是从0到n-1,而是随便的一个数字,需要离散化否则不能存相关信息 2.城市数不超过30,也就是说我的方法开矩阵不超过60,但是我残念的一开始以为最多可能有20000个不同城市 血 ...
 - Mybatis工作原理(九)
			
mybatis工作流程: (1) SqlSessionFactoryBuilder 从 XML 配置文件或通过Java的方式构建出 SqlSessionFactory 的实例. (2) SqlSess ...
 - Python进阶-XV 类和对象的命名空间 组合
			
一.类和对象命名空间 1.类中可以定义两种属性 静态属性和动态属性 class Course: language = 'Chinese' # 静态属性 def __init__(self, name, ...
 - 图像检索——VLAD
			
今天主要回顾一下关于图像检索中VLAD(Vector of Aggragate Locally Descriptor)算法,免得时间一长都忘记了.关于源码有时间就整理整理. 一.简介 虽然现在深度学习 ...
 - UAC简介
			
用户帐户控制 (User Account Control) 是Windows Vista(及更高版本操作系统)中一组新的基础结构技术,可以帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统,同时也可以 ...