zoukankan      html  css  js  c++  java
  • redux(一)

    redux主要用于组件之间的通信

    一 核心有:action、reducer、store

    action是一个对象,必有一个动作的名字属性type,

    reducer是一个计算state的函数,接收当前state、action,根据action的key,返回一个新的state

    store在一个应用中是唯一的,通过createStore创建,createStore接收reducer

    当用户发出动作时,通过store.dispatch(action)自动触发reducer,返回一个新的state,重新渲染view(state与view一一对应)。

    二 中间件(middleware)

    是一个函数,主要用在发出action和执行reducer之间,用于改造store.dispatch,异步执行

    常用的中间件:

    redux-logger(日志)提供一个生成日志中间件的生成器createLogger,将生成的中间件放入applyMiddleware(来自redux),然后传入createStore,就是用日志中间件的使用。

    thunk(来自redux-thunk)主要用于异步操作的中间件,使其不仅可以接受对象action,也可以接受函数。applyMiddleware(thunk).

    promiseMiddleware(来自redux-promise)可以让action 生成器不仅返回对象 , 也可以返回一个promise对象。applyMiddleware(promiseMiddleware)。

    routerMiddleware(来自react-router-redux)的中间件,主要用于捕获或者重定向history,使用routerMiddleware(hashHistory/browserHistory)生成中间件,然后放入applyMiddleware,...

    中间件的次序是有规则的,一般情况下日志中间件放在最后.

    三 redux的两个核心:connect, Provider

    (1)UI组件负责视图的呈现,容器组件负责数据和逻辑的处理

    connet主要用于从UI组件生成容器组件,将两种组件结合起来

    API: const containerC = connect(mapStateToProps, mapDispatchToProps)(UIC):

    mapStateToProps:(state, [ownProps])。负责输入逻辑,即将state对象映射到Ui组件的参数props,返回包含键值对的对象,订阅Store,每当state更新时,会自动执行

    mapDispatchToProps(dispatch,ownProps): 负责输出逻辑,即将用户对Ui组件的操作映射成action。返回对象,定义了怎样触发action

    (2)Provider组件: 使容器组件可以拿到state

  • 相关阅读:
    mysql查找有某列但没有此列索引的表
    mysql找到所有索引
    mysq在某一刻同时获取主从库的位置点
    新书《深入应用C++11:代码优化与工程级应用》出版,感谢支持
    c++11实现一个简单的lexical_cast
    应该用bind+function取代虚函数吗?
    《深入应用C++11:代码优化与工程级应用》开始发售
    一个更好的C++序列化/反序列化库Kapok
    C++技术沙龙主要内容
    C++11模版元编程
  • 原文地址:https://www.cnblogs.com/qingxiawu/p/8950520.html
Copyright © 2011-2022 走看看