本篇内容介绍了“Redux原理及应用三大原则是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
Redux工作原理
Redux通过store来管理全局的状态;
视图产生操作后会生成一个action,通过dispatch(action)这个方法派发给store;
store会将当前的状态和此次的action交给reducer处理,reducer处理后需要返回新的状态,此时store就能得知数据的变化,然后回通知视图获取最新的数据
基本概念和api
Store
Store 就是用来维持应用所有的 state 树 的一个对象。
改变 store 内 state 的惟一途径是对它 dispatch 一个 action。
整个应用只能有一个 Store。
store方法
提供 getState() 方法获取 state; 提供 dispatch(action) 方法更新 state; 通过 subscribe(listener) 注册监听器; 通过 subscribe(listener) 返回的函数注销监听器。
Reducer
reducer其实就是一个纯函数。
它接收两个参数,第一个参数是需要管理的状态state,第二个是action。
reducer会根据传入的action的type值对state进行不同的操作,然后返回一个新的state,而不是在原有state的基础上进行修改,但是如果遇到了未知的(不匹配的)action,就会返回原有的state,不进行任何改变。
const reducer =(state,action)=>{ switch(action.type){ case ADD_TODO: return newstate; default return state } }
Action
action本质是一个对象;
它是 store 数据的唯一来源。它会运送数据到 Store。
const action={ type:'ADD_TODO', payload:'redux原理' }
应用时的三大原则
在我们使用redux时,需要遵守这三大原则,则可以避免90%的bug:
单一的数据源
我们把Store看成一个全局对象,而这个对象是唯一的,所有的状态都在Store这个状态树中'统一配置'
State是只读的
想要改变State必须通过Action,而具体使action在state上更新生效的是reducer;
这样确保了 视图 和 网络请求 都不能直接修改 state,相反它们只能表达想要修改的意图。
Reducer必须是一个纯函数
Reducer内部的执行操作必须是无副作用的,不能对state进行直接修改,当状态发生变化时,需要返回一个全新的对象代表新的state。
这样确保了同样的State,必定得到同样的 View。
需要遵守的是:
不得改写参数 不能调用系统 I/O 的API 不能调用Date.now()或者Math.random()等不纯的方法,因为每次会得到不一样的结果
“Redux原理及应用三大原则是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!