什么是 Redux?
Redux 是一个 JavaScript 应用程序状态容器,它可以管理 React、Angular、Vue 等前端框架的应用程序状态。Redux 的主要作用是存储程序的状态和提供一种简单的方法来更新它。Redux 核心理念是单一状态树,意味着你整个应用程序的状态被存储在一个单一的 JavaScript 对象中。
Redux 的应用场景
Redux 的应用场景包括:多个视图依赖同一组数据、大型应用程序、程序状态的共享、服务器端渲染等。Redux 广泛用在 React 等前端框架的应用程序中。
Redux 方法和变量详解
createStore 方法
createStore(reducer, [preloadedState], [enhancer])
方法创建一个 Redux store,它接受三个参数:
reducer
:一个函数,用于更新应用程序状态;preloadedState
:初始状态,可选参数;enhancer
:一个函数,用于增强 Redux store 的功能,比如使用中间件等,可选参数。
-- -------------------- ---- ------- ------ - ----------- - ---- -------- ----- ------------ - - ------ - -- -------- ------------- - ------------- ------- - ------ ------------- - ---- ------------ ------ - ------ ----------- - - -- ---- ------------ ------ - ------ ----------- - - -- -------- ------ ------ - - ----- ----- - ---------------------
combineReducers 方法
combineReducers(reducers)
方法合并多个 reducer 函数,每个 reducer 函数负责更新应用程序状态树中的一部分状态。combineReducers
方法返回一个新的 reducer 函数,该函数把每个子 reducer 的返回值组合成一个状态对象。
-- -------------------- ---- ------- ------ - --------------- - ---- -------- -------- ------------- - - ------ - -- ------- - ------ ------------- - ---- ------------ ------ - ------ ----------- - - -- ---- ------------ ------ - ------ ----------- - - -- -------- ------ ------ - - -------- ----------- - --- ------- - ------ ------------- - ---- ----------- ------ - --------- - ----- ------------ ---------- ----- - -- ---- -------------- ------ ---------------- ------ -- - -- ------ --- ------------- - ------ - -------- ---------- --------------- -- - ------ ----- --- -------- ------ ------ - - ----- ----------- - ----------------- -------- ----- --- ----- ----- - -------------------------
getState 方法
getState()
方法返回当前的应用程序状态树。
-- -------------------- ---- ------- ------ - ----------- - ---- -------- ----- ------------ - - ------ - -- -------- ------------- - ------------- ------- - ------ ------------- - ---- ------------ ------ - ------ ----------- - - -- ---- ------------ ------ - ------ ----------- - - -- -------- ------ ------ - - ----- ----- - --------------------- ------------------------------ -- - ------ - -
dispatch 方法
dispatch(action)
方法触发一个 action,使应用程序状态树的数据更新。
-- -------------------- ---- ------- ------ - ----------- - ---- -------- ----- ------------ - - ------ - -- -------- ------------- - ------------- ------- - ------ ------------- - ---- ------------ ------ - ------ ----------- - - -- ---- ------------ ------ - ------ ----------- - - -- -------- ------ ------ - - ----- ----- - --------------------- ---------------- ----- ----------- --- ------------------------------ -- - ------ - -
subscribe 方法
subscribe(listener)
方法订阅 Redux store 的更新,当 state 更新时自动执行传入的函数。
-- -------------------- ---- ------- ------ - ----------- - ---- -------- ----- ------------ - - ------ - -- -------- ------------- - ------------- ------- - ------ ------------- - ---- ------------ ------ - ------ ----------- - - -- ---- ------------ ------ - ------ ----------- - - -- -------- ------ ------ - - ----- ----- - --------------------- ------------------ -- - ------------------------------ --- ---------------- ----- ----------- --- -- - ------ - - ---------------- ----- ----------- --- -- - ------ - -
applyMiddleware 方法
applyMiddleware(...middlewares)
方法是一个高阶函数,它将多个 middleware 组合成一个单一的函数链。middleware 就是在 Redux 的 action 和 reducer 之间进行处理的函数。常用的 middleware 有:redux-thunk、redux-saga 等。
-- -------------------- ---- ------- ------ - ------------ --------------- - ---- -------- ------ ----- ---- -------------- ----- ------------ - - ------ - -- -------- ------------- - ------------- ------- - ------ ------------- - ---- ------------ ------ - ------ ----------- - - -- ---- ------------ ------ - ------ ----------- - - -- -------- ------ ------ - - ----- ----- - ------------ -------- ---------------------- -- ------------------------- -- - ---------- ----- ----------- --- ---
总结
Redux 是一个 JavaScript 应用程序状态容器,它可以管理 React、Angular、Vue 等前端框架的应用程序状态。Redux 的主要作用是存储程序的状态和提供一种简单的方法来更新它,它有 createStore、combineReducers、getState、dispatch、subscribe、applyMiddleware 等方法和变量。在使用 Redux 的时候,我们需要了解它的基本使用方法,掌握它的核心理念和常用的 middleware,才可以更好地管理应用程序的状态并创建出更加复杂的应用程序。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648434c548841e9894359c80