当前位置 : 主页 > 网络编程 > 其它编程 >

如何看懂redux原理

来源:互联网 收集:自由互联 发布时间:2023-07-02
如何看懂redux原理我们想想怎么创建一个store这个store支持我们做什么获取store里面的数据状态可以更新store里面的数据状态通过什么样的方式更新store里面数据状 如何看懂 redux 原理 我们
如何看懂redux原理我们想想怎么创建一个store这个store支持我们做什么获取store里面的数据状态可以更新store里面的数据状态通过什么样的方式更新store里面数据状

如何看懂 redux 原理

  • 我们想想怎么创建一个 store

  • 这个 store 支持我们做什么

  • 获取 store 里面的数据状态

  • 可以更新 store 里面的数据状态

  • 通过什么样的方式更新 store 里面数据状态

  • 外部如何知道数据已经更新通过订阅的方式

通过以上的步骤我们可以画出以下的流程图或者原理图

那么我们就可以来实现代码了

import { createStore } from redux;//  我们想想怎么创建一个 store// 这个 store 支持我们做什么// 1. 获取 store 里面的数据状态// 2. 可以更新 store 里面的数据状态// 3. 通过什么样的方式更新 store 里面数据状态// store 里面 state 数据let state  {num: 10}// 需要通过什么样的操作类型let action1  {type: ADD_ONE,num: 1}let action2  {type: SQUARE,}let action3  {type: ADD_TWO,num: 2}// 因为我们无法直接修改或者覆盖 store 数据状态只能重新返回新的状态// 所以需要 reducer 来帮助我们做这些事情let reducer  (state  {num: 2}, action) > {let numswitch(action.type) {case "ADD_ONE":num  state.num  action.numreturn { num }case "ADD_TWO":num  state.num  action.numreturn { num }case "SQUARE":num  state.num * state.numreturn { num }default:return state}}// 然后使用 createStore 来连接 reducerlet store  createStore(reducer)// 外部如果获取 store 里面的 stateconsole.log("store.getState",store.getState())// 然后外部如何更新内部的值呢// 只能通过 dispatch 的方式更新console.log("store.dispatch(action1)", store.dispatch({type: "ADD_ONE"}))console.log("store>", store)// 如果有多个 reducer 怎么办呢// redux 给我们提供了 combineReducers({reducer})

那么外部 视图层如何知道 store 里面的 state 是被更新过了呢

redux 采用了订阅的方式

// 那么外部是如何知道 store 里面的 state 被更新过了呢// redux 采用 订阅的方式store.subscribe(function(){console.log("我被更新了")})// 如果有多个 reducer 怎么办呢// redux 给我们提供了 combineReducers({reducer})// 如果有中间件如何处理呢// redux 提供了 applyMiddleware(中间件)

【文章原创作者:香港显卡服务器 http://www.558idc.com/hkgpu.html 网络转载请说明出处】
上一篇:ExtjstreePanel过滤查询功能【转】
下一篇:没有了
网友评论