< 返回技术文档列表

Redux原理及应用三大原则是什么

发布时间:2021-11-07 03:17:30⊙投诉举报

本篇内容介绍了“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原理及应用三大原则是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注血鸟云网站,小编将为大家输出更多高质量的实用文章!


/template/Home/Zkeys/PC/Static