福建省建设执业注册中心网站,做网站做国外广告,力洋网站建设公司,福清市城乡建设局网站1.定义 中间件就是一个函数#xff0c;对store.dispatch方法进行了改造#xff0c;在发出 Action 和执行 Reducer 这两步之间#xff0c;添加了其他功能。 2.举例 日志中间件 import { applyMiddleware, createStore } from redux;
import createLogger from redux-logger;
…1.定义 中间件就是一个函数对store.dispatch方法进行了改造在发出 Action 和执行 Reducer 这两步之间添加了其他功能。 2.举例 日志中间件 import { applyMiddleware, createStore } from redux;
import createLogger from redux-logger;
const logger createLogger();const store createStore(reducer,applyMiddleware(logger)
); 在这里redux-logger提供一个生成器createLogger可以生成日志中间件logger。然后将它放在applyMiddleware方法之中传入createStore方法就完成了store.dispatch()的功能增强。 3.applyMiddlewares()方法 applyMiddlewares()是 Redux 的原生方法作用是将所有中间件组成一个数组依次执行。 4.异步操作的思路 1.同步操作只要发出一种 Action 即可异步操作的差别是它要发出三种 Action。分别是操作发起操作成功操作失败 以抓取数据为例共有两种写法 // 写法一名称相同参数不同
{ type: FETCH_POSTS }
{ type: FETCH_POSTS, status: error, error: Oops }
{ type: FETCH_POSTS, status: success, response: { ... } }// 写法二名称不同
{ type: FETCH_POSTS_REQUEST }
{ type: FETCH_POSTS_FAILURE, error: Oops }
{ type: FETCH_POSTS_SUCCESS, response: { ... } } 异步操作的思路 操作开始时送出一个 Action触发 State 更新为正在操作状态View 重新渲染操作结束后再送出一个 Action触发 State 更新为操作结束状态View 再一次重新渲染5 redux-thunk 中间件 操作结束自动发出一个action 加载成功后componentDidMount方法它送出了dispatch方法一个 Action向服务器要求数据 fetchPosts(selectedSubreddit)。这里的fetchPosts就是 Action Creator。fetchPosts是一个Action Creator动作生成器返回一个函数。这个函数执行后先发出一个ActionrequestPosts(postTitle)然后进行异步操作。拿到结果后先将结果转成 JSON 格式然后再发出一个 Action receivePosts(postTitle, json)。返回的是对象而不是函数就要使用中间件redux-thunk 异步操作的第一种解决方案就是写出一个返回函数的 Action Creator然后使用redux-thunk中间件改造store.dispatch。 6.redux-promise中间件。 另一种异步操作的解决方案就是让 Action Creator 返回一个 Promise 对象。这就需要使用redux-promise中间件。这个中间件使得store.dispatch方法可以接受 Promise 对象作为参数。这时Action Creator 有两种写法。具体因为不常用不介绍。 转载于:https://www.cnblogs.com/lyxverycool/articles/6548541.html