本文主要介紹redux使用流程(redux-saga原則),下面一起看看redux使用流程(redux-saga原則)相關(guān)資訊。
目錄1。redux是什么?2.redux 3的原理。redux怎么用?(1).安裝redux,創(chuàng)建redux文件夾,建立store.js(2)。建立reducers.js(3)。介紹store.subscribe(4)。介紹一下react-redux1。redux 1。redux是什么?react只是dom的抽象層,并不是web應(yīng)用的完整解決方案。react只是一個(gè)輕量級(jí)的視圖層框架,如果要用于大規(guī)模的應(yīng)用,要和視圖層框架redux一起使用。主要用在多交互多數(shù)據(jù)源的場(chǎng)景中,不一定要用,但是一定要能。
2.redux的原理redux的原理先用一張圖來說明,比較好理解。
首先,用戶發(fā)出一個(gè)動(dòng)作。
?1store.dispatch(動(dòng)作);然后,存儲(chǔ)自動(dòng)調(diào)用reducer并傳入兩個(gè)參數(shù):當(dāng)前狀態(tài)和接收到的動(dòng)作。減速器將返回新狀態(tài)。
?1 let next state = todo app(previous state,action);一旦狀態(tài)改變,存儲(chǔ)將調(diào)用器函數(shù)。
?12//設(shè)置器函數(shù)store.subscribe(器);偵聽器可以通過store.getstate獲取當(dāng)前狀態(tài)。如果使用react,可以觸發(fā)視圖的重新渲染。
?1234 function listener{ let new state = store . getstate;component . set state(new state);}3.redux怎么用?(1).安裝redux,創(chuàng)建redux文件夾,建立store.js這個(gè)文件專用于公開一個(gè)store對(duì)象,整個(gè)應(yīng)用只有一個(gè)store對(duì)象。
安裝redux :紗添加redux/npm安裝redux
?123456789//介紹createstore,專門用于從 redux //引入為計(jì)數(shù)組件提供服務(wù)的reducerimport countreducer。。/count _ reducer ;//引入redux-thunk,用于支持異步actionimport thunk from reduce-thunk ;//expose store //applymiddleware是一個(gè)thunk導(dǎo)出默認(rèn)的create store (countreducer,applymiddleware(thunk))(2)。create reducers.js1 .該文件用于創(chuàng)建服務(wù)于count組件的reducer,reducer的本質(zhì)是一個(gè)函數(shù)。2.reducer函數(shù)將接收兩個(gè)參數(shù),即:前一狀態(tài)和動(dòng)作對(duì)象。123456789101112131415 const init state = 0//初始化狀態(tài)導(dǎo)出默認(rèn)函數(shù)計(jì)數(shù)縮減器(prestate = init state,action){//console . log(prestate);//get: type,data const {type,data} = action //根據(jù)type { case ;incr://if it is ;decr: with return prestate data cas: return prestate } }(3)決定如何處理數(shù)據(jù)切換(type)。引入store.subscribe來監(jiān)控商店中的每一個(gè)修改。
?1234567// public index.js從 。/redux/store ;//訂閱當(dāng)存儲(chǔ)中的數(shù)據(jù)發(fā)生變化時(shí),數(shù)據(jù)會(huì)更新。寫到這里讓全世界都擁有store . subscribe(= { react dom . render(app/,document。getelementbyid( ;根與樹。;))}) (4).介紹react-redox react-r:provider)。、連接等。),使用它可以更好的組織管理我們的代碼,在react中更方便的使用redux。
下載react-redux
創(chuàng)建計(jì)數(shù)文件
?12345678910111213141516171819202122324272829303132334353738394041424445464748//從 .../.../組件/計(jì)數(shù) / connect用于將ui組件與redux import {connect}從 react-redux ;- .2.返回的對(duì)象中的鍵被用作傳遞給ui組件props的鍵。該值作為值3傳遞給ui組件props,mapstatetoprops用于傳遞狀態(tài)*/函數(shù)mapstatetoprops(state){ return { count : state } }。- .2.返回的對(duì)象中的鍵被用作傳遞給ui組件props的鍵。value是傳遞給ui組件props的值。3.mapdispatchtoprops是用于傳遞操作狀態(tài)*/函數(shù)mapdispatchtoprops(調(diào)度)的方法。{ return { jia : number = dispatch(createincrementaction(number))、jia : number = dispatch(createdecrementaction(number))、jiaasync:(number,time)= dispatch(createincrementsyncaction(number,time))、}}/use connec。t創(chuàng)建并公開一個(gè)名為export default count(mapstatetops,mapdispatchtoprops)(count ui)//)//improved export default connect(state =({ count : state }),//mapdispatchtoprops一般寫法/* dispatch =({ jia : number = dispatch(create increment(number))、jian : number = dispatch(createdelevation(number))、jiaasynccho 0-@ . com(number,time)= dispatch(createincrementasynaction(number,time)))*//mapdispatchtoprops的簡(jiǎn)寫{ jia : createincrement、jian : createdelement、jiaasynccho 0-@ . com createincrementsyn
?1234567891011121314151617/*該文件為count組件*/import {increment,decrement}從 ../常數(shù) //同步動(dòng)作。是指以action的值為對(duì)象的一般對(duì)象,export const increment = data =({ type : increase,data })export const decrement = data =({ type : decrement,data })//異步action是指action的值是一個(gè)函數(shù),同步action通常在異步action中調(diào)用,不需要。export const increment sync =(data,time) = { return (dispatch)= { settimeout(= { dispatch(incr:你可能感興趣的文章詳細(xì)講解了react-redux中connect的用法介紹和原理分析。javascript狀態(tài)容器redux一文解釋了redux在react中的初始用法標(biāo)簽:
組件對(duì)象
了解更多redux使用流程(redux-saga原則)相關(guān)內(nèi)容請(qǐng)關(guān)注本站點(diǎn)。