react-redux

react-redux

store:圖書管理員
Component:借書用戶
Action:用戶說的話(要借什么書)
Reducer:記錄本

Store

//安裝Redux
yarn add redux

在src目錄下新建一個(gè)名為store的文件夾,并創(chuàng)建一個(gè)index.js,此為store倉庫的內(nèi)容區(qū)域。基本步驟如下:

//1. 從redux中導(dǎo)入一個(gè)createStore的方法。
import  {createStore} from 'redux';

//2. 創(chuàng)建一個(gè)store
const store = createStore();

//3. 暴露模塊
export default store

有了倉庫store后,必須同時(shí)把reducer傳給store。
只有store的話,他什么都不知道,所以創(chuàng)建一個(gè)reducer:

//1. 在store的同級(jí)目錄下新建一個(gè)reducer.js
//在redux中,reducer需要返回一個(gè)函數(shù)
const defaultState = {}    //默認(rèn)什么數(shù)據(jù)都不存儲(chǔ)
export default (state = defaultState,action)=>{  //state:整個(gè)store倉庫里的數(shù)據(jù)
//還需返回一個(gè)內(nèi)容,先默認(rèn)返回state;
    return state;
}

store.subscribe() //訂閱

reducer

==reducer可以接受state==,但絕不可以修改state

  1. 創(chuàng)建好reducer后,將其傳遞給store
import reducer from './reducer'
  1. 創(chuàng)建store的時(shí)候,把reducer傳遞給store
const store = createStore();
  • reducer存儲(chǔ)著整個(gè)項(xiàng)目應(yīng)用中的數(shù)據(jù),這時(shí)候store就知道了倉庫里數(shù)據(jù)有多少。
  • 可以去reducer里查看,reducer管理倉庫里的數(shù)據(jù)(怎么處理,怎么存)
  • reducer必須返回一個(gè)函數(shù)。

action(改變store的數(shù)據(jù),做通信)

//創(chuàng)建一個(gè)action
const action = {  //借書的同學(xué)說的一句話,
    type:'change_input_value',  //type說的話,值是你幫我去改變input的值
    value:e.target.value    //這個(gè)值應(yīng)該是這處的value
}

dispatch

  • store通過dispatch把a(bǔ)ction傳遞給store,但此時(shí)store不知道該怎么處理,所以又會(huì)去找reducer,store會(huì)把當(dāng)前的prevState和action傳給reducer。

  • redux會(huì)自動(dòng)把store里的prevState和action傳給reducer

//
store.diapatch(action);    //action傳給store

此時(shí)reducer拿到了數(shù)據(jù)后,對(duì)數(shù)據(jù)進(jìn)行處理
因?yàn)?strong>reducer可以接受state,但絕不可以修改state**,所以給state做一個(gè)深拷貝,這是固定的做法。最后把拷貝的數(shù)據(jù)return 出去。(return以后,返回給了store)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在很久以前有一個(gè)部落,因?yàn)樗麄兩钤谏掷?,所以他們的大部分家具全是用木頭做的。很少用石頭做東西,但還是有的比如鏟...
    王思彤閱讀 130評(píng)論 0 0
  • 姓名:王蘭英 【日精進(jìn)打卡第129天】 【知~學(xué)習(xí)】 《六項(xiàng)精進(jìn)》0遍共105遍 《大學(xué)》0遍共116遍 【經(jīng)典名...
    米蘭王閱讀 119評(píng)論 0 0
  • 我收到遠(yuǎn)方的一封信 小巷消逝了叮當(dāng)?shù)拟徛?山那邊,有一只手 拽走晚霞的面紗 夜色點(diǎn)亮平原深處的小城 你聽見背后的門...
    達(dá)斐閱讀 623評(píng)論 2 5

友情鏈接更多精彩內(nèi)容