亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

redux.js詳解及基本使用

2024-05-06 16:51:24
字體:
來源:轉載
供稿:網友

什么是Redux

?      Redux我們可以把它理解成一個狀態管理器,可以把狀態(數據)存在Redux中,以便增、刪、改。例如:

從服務器上取一個收藏列表,就可以把取回來的列表數據用Redux管理,多個頁面共享使用,不用把數據傳來傳去。

A頁面改變了一個狀態,B頁面要收到通知,做相應的操作。

?       Redux是一個給JS應用使用的可預測的狀態容器,也就是說結果是可預測的,每一次改動會有確定的結果,正如函數式編程思想里的相同的參數會返回相同的結果。

?       Redux的狀態會存儲在單一的數據源中(存儲在對象樹中),這樣,讀取和共享就非常方便,不必去考慮會取錯。狀態是只能直接讀取的,不能直接修改,修改只能通過發送事件(action)統一處理,這樣便于分析事件,也可以避免隨處修改狀態造成競態條件。統一處理狀態時用純函數(reducers中的函數)來修改狀態,這些函數只是一個勾子,當需要修改狀態樹時Redux會來調用,你可以編寫不同的函數來處理不同action對應的狀態,或者復用一個函數來處理多種action。

為什么要用

?        簡單來說就是使不易維護的數據變得維護簡單,以小程序舉例:多個頁面要共享一套數據,而且這些數據是隨時可能從網絡上獲取更新或增減的(如頁面跳轉時要帶數據過去(非基本類型的數據),這時如果用app中的全局變量來暫存,存的變量多了,以后維護是個大麻煩,別人接手代碼也會很煩惱。),還有一個地方的數據有改變,其他地方要收到通知等這些場景就可以使用Redux來做,如果你沒有遇到這些問題,說明你的項目還沒有到這些復雜的階段,可以暫不考慮用Redux。

Redux的四個部件

redux.js

Action:action是一個事件,用來描述發生了什么事,例如用戶點擊了一個刷新按鈕,就會產生一個獲取最新數據的事件,Action就是用來標識這個事件的,Action是一個JS對象,擁有2個屬性,一個type,一個data,type用來表示該action的類型,data為新的狀態數據,既然是對象當然還可以帶上一些其他的屬性,在處理狀態的時候使用。
Reducer:reducer是一個處理狀態的函數,真正的狀態數據處理就是在這個函數里,reducer接受兩個參數,一個是修改前的狀態(state)對象,一個是action??梢栽趓educer中判斷action的type屬性來確定是一個什么事件然后對state做相應的處理,并返回新的state。

Store:store是Redux的CPU,狀態處理器,它提供了一些api給我們使用,如:

getState方法,可以獲取到最新的狀態對象樹。
subscribe方法用來訂閱狀態的更新,該方法接受一個函數做為監聽器,并會返回一個注銷訂閱的函數,以便我們在不需要訂閱時注銷改監聽器。

dispatch方法用來分發事件,它接受一個action作參數,把事件發出去。

State:state是存儲的數據,數據會以對象樹的結構來管理,這里要注意,Store每次傳給reducer的state是整個state對象樹中對應該reducer名字(key)的子對象。

?        事件發出后store會派reducer去處理事件,得到新的state,然后通知給各個監聽器有新的變化(觀察者模式)。
總體來說Redux就像是一個快遞倉庫(store),里面的貨物(state)按地域分別存儲,每當有一個新的貨物進來(dispatch),處理程序或人員(reducer)就會去按地名(type)添加到倉庫對應的位置,然后倉庫通知(subscribe)快遞員來取貨物。

1、先是安裝reduxJx, cnpm i --save rudux2、創建一個store的js文件 3、使用import來引用 redux   import { createStore } from 'redux'4、然后在store 創建一個全局管理數據對象const preloadState = {  cartList: []}5、處理全局數據的方法const reducer = function(state, action){// 參數state:上一次的state狀態// 參數action:事件描述對象console.log(action.type);處理數據方法if (item.a === 0 ){  ...代碼}//返回下一次全局使用的state狀態return state;}//創建倉庫const store = createStore(reducer, preloadState);export default store6、dispatch的使用     在store以外 store.dispatch()調用 參數1:設置store里面的action相對的type值,參數2:傳遞的數據   如下:      store.dispatch({          type: 'add',          value: {            id: 2          }      })然后在store里面的action里面可以獲取到 type和傳入的value值,也可以在全局管理數據中的state改變全局的數據7、在組件(頁面)中也可以通過store. getState()來獲取你存儲的相對應的值,8、store.subscribe()的操作是基本用來監聽 store里面的一些數據變化進行操作的,需要主要的是dispatch的操作順序,

總結

以上所述是小編給大家介紹的redux.js詳解及基本使用,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品视频免费在线观看| 日韩国产欧美区| 亚洲最大的网站| 国产精品一区二区三区久久| 视频在线观看一区二区| 色先锋久久影院av| 狠狠操狠狠色综合网| 国产精品久久久久999| 欧美大片va欧美在线播放| 色综久久综合桃花网| 欧美日韩国产精品一区二区不卡中文| 日韩少妇与小伙激情| 亚洲精品乱码久久久久久金桔影视| 成人午夜高潮视频| 亚洲专区在线视频| 精品国产鲁一鲁一区二区张丽| 精品国产视频在线| 97超级碰碰碰| 亚洲精品欧美日韩| 久久精品色欧美aⅴ一区二区| 疯狂做受xxxx欧美肥白少妇| 亚洲欧美精品伊人久久| 91亚洲一区精品| 日韩av日韩在线观看| 热久久美女精品天天吊色| 亚洲国产欧美一区二区丝袜黑人| 欧美激情精品久久久久久免费印度| 色综合久久久久久中文网| 久久免费视频观看| 亚洲91av视频| 97在线视频国产| www高清在线视频日韩欧美| 欧美福利视频在线观看| 欧美日韩激情小视频| 中文字幕亚洲情99在线| 欧美中文字幕视频在线观看| 久久久久久久久久久久av| 日本精品视频在线观看| 亚洲色图17p| 亚洲一区二区中文字幕| 91在线高清视频| 久久久久久久亚洲精品| 一个人看的www久久| 亚洲国产免费av| 宅男66日本亚洲欧美视频| 91香蕉嫩草影院入口| 久久精品男人天堂| 日本久久久a级免费| 欧美电影免费观看高清完整| 日韩在线欧美在线| 欧美视频在线看| 久久精彩免费视频| 欧美精品18videos性欧美| 国产欧美一区二区三区久久| 免费不卡欧美自拍视频| 欧美极品少妇xxxxⅹ喷水| 久久视频在线免费观看| 欧美性猛交xxxx乱大交蜜桃| 欧美午夜精品在线| 精品一区二区三区四区在线| 日产精品99久久久久久| 欧美亚洲午夜视频在线观看| 97超碰蝌蚪网人人做人人爽| 国产精品久久久久秋霞鲁丝| 欧美中文在线观看| 国产91精品最新在线播放| 国内揄拍国内精品| 2019中文字幕免费视频| 欧美亚洲视频一区二区| 92裸体在线视频网站| 国产成人精品视频在线| 日韩最新av在线| 欧美日韩亚洲视频| 日韩av电影院| 国产精品一区久久| 国产亚洲人成网站在线观看| 国产精品视频yy9099| 国产精品亚洲视频在线观看| 国产在线精品成人一区二区三区| 97精品久久久| 欧美性视频网站| 亚洲黄页网在线观看| 国产日韩在线免费| 亚洲深夜福利在线| 国产午夜精品麻豆| 亚洲free性xxxx护士白浆| 91精品国产99久久久久久| 97精品一区二区视频在线观看| 亚洲视频电影图片偷拍一区| 91av在线网站| 欧美一级bbbbb性bbbb喷潮片| 国产做受69高潮| 国产va免费精品高清在线观看| 亚洲视频999| 久久6免费高清热精品| 亚洲精品aⅴ中文字幕乱码| 中文字幕最新精品| 亚洲国产私拍精品国模在线观看| 日本欧美中文字幕| 亚洲天堂精品在线| 日韩久久免费视频| 欧美激情一区二区三级高清视频| 日本一本a高清免费不卡| 欧美老女人xx| 国产成人精品久久亚洲高清不卡| 久久亚洲精品一区| 欧美激情亚洲综合一区| 国产精自产拍久久久久久蜜| 亚洲欧美激情精品一区二区| 国产精品男人的天堂| 亚洲男人av在线| 国产精品白丝jk喷水视频一区| 欧美夫妻性生活视频| 91色琪琪电影亚洲精品久久| 成人综合国产精品| 久久久亚洲福利精品午夜| 国内精品伊人久久| 91av中文字幕| 日本不卡免费高清视频| 久久青草福利网站| 国产精品夜色7777狼人| 日韩中文在线视频| 国产精品综合网站| 亚洲激情 国产| 国产成人精品最新| 欧美激情在线播放| 欧美www视频在线观看| 在线日韩精品视频| 在线日韩日本国产亚洲| 国产成人精品优优av| 欧美成在线视频| 久久久久久中文| 成人福利网站在线观看11| 亚洲激情中文字幕| 欧美疯狂xxxx大交乱88av| 国产精品激情av电影在线观看| 性色av香蕉一区二区| 久色乳综合思思在线视频| 久久久久久久久久久网站| 91精品国产色综合久久不卡98| 亚洲欧美制服中文字幕| 91高潮精品免费porn| 7m精品福利视频导航| 欧美色视频日本高清在线观看| 久久久91精品国产一区不卡| 国产精品亚洲一区二区三区| 亚洲男人天堂2023| www.欧美精品一二三区| 欧美激情中文字幕乱码免费| 亚洲精品美女在线观看| 亚洲精品成人久久电影| 亚洲一区二区自拍| 国产mv免费观看入口亚洲| 亚洲免费一级电影| 亚洲福利视频久久| 国产成人精品午夜| 欧美黑人国产人伦爽爽爽| 国产日韩欧美成人| 亚洲福利视频久久| 91高潮精品免费porn| 另类专区欧美制服同性| 国产91在线高潮白浆在线观看| 国产日韩欧美视频| 国产亚洲精品久久久久久牛牛|