簡單而又詳細的react+reactRouter+redux項目

看了網上的很多關於reactRouter和redux的文章,感覺自己理解的都很亂,衆說紛紜,不知道從何下手,其實我就是想要一套開發項目的模板,就這麼簡單。看了挺多文章,所以現在做了些總結。

一、構建項目

爲了讓我們的項目更加簡單,所以使用官方提供的react-create-app這套腳手架工具構建我們的項目,這裏創建的具體步驟我就不具體闡述,可以參考我這篇文章https://blog.csdn.net/qq_35430000/article/details/79800461,構建過程還是很簡單的。

二、目錄結構

看了網上的挺多文章,提倡按角色組織、按功能組織、又按混合組織我們的目錄結構,一層嵌套一層,雖然結構是挺規整的,但是增加了我們的開發難度,心想我這項目又不是太大型,引入一個css文件,要深入好幾層去引用,效率可能不是太高。總之,適合自己的就是最好的,所以我對項目結構進行了下整理。


三、index.html和index.js入口文件

index.html只有一個id爲root的容器,這個root就是整個項目的父容器,所有頁面都會包裹在裏面。


index.js文件


路由這塊就不做着重去講,按照上圖的配置,路由應該是能夠實現的,如果要進一步瞭解請查閱相關文檔。

三、redux的實現

瞭解過vuex的同學再來學redux可能會覺得無從下手,個人覺得redux要比vuex要難以理解,但他們的功能都是一樣的,就是共同維護一個公共的狀態,一個地方改變了,其他引用到這個state的地方也會跟着改變。

下面用最簡單的 加和減的例子講解redux的用法:

首先功能呢是這樣的,默認count是0,在increase加法頁面,每點擊一次按鈕進行+2的操作,當然這個2是通過參數傳遞的。參數可以是字符串、對象等,現在舉例是一個數字。在decrease減法頁面,點擊一次按鈕會進行 -1的操作,這個1也是通過參數傳遞的。因爲維護的state中的count初始化 0,所以這兩個頁面目前count的狀態都是0,如果在加法頁面進行+2的操作,那麼無疑,在減法頁面,就是顯示 2這個數字,這就是需要redux的原因,一個地方改變了state,其他地方引用的也需要改變。

    

具體實現:

(1)首先看一下redux的流程(自己畫的圖有點醜,多包涵,大概意思就是這樣)


(2)先看第一步,也就是view頁面,就是加和減這兩個頁面


mapStateToProps(對應數據)和mapDispatchToProps(對應一些動作)就像react給我們提供的語法糖,把一些複雜的操作幫我們封裝好了。Decrease減法頁面和上面是一樣的,就不列舉。

(3)Action

type字段是不能缺少的,用於在Reducer中區分要做什麼事情,加或者減,加多少,減多少等


(4)Reducer


(5)創建state,通過Provider使得所有的組件和頁面共享state,形成一個閉環的操作


最後:查閱了挺多資料,結合vuex的步驟,一個簡單而又詳細的react+reactRouter+redux項目就這樣愉快的寫好了。匆忙寫完了這篇文章,很簡陋,我覺得肯定還有漏洞和邏輯方面的錯誤,如果大家對這篇文章有什麼疑問或者不同意的地方請留言給我指出,謝謝。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章