Blue:
1.增加了api中對ajax的封裝疚俱,在沒有后臺數(shù)據(jù)傳輸?shù)臅r候可以寫假數(shù)據(jù),實現(xiàn)了前后臺分離博敬。
2.增加了組件文件友浸,可重復使用。
3.增加了store文件偏窝,type文件連接action和reducers路由收恢,reduce文件連接view和reducers路由,還有處理action中promise的中間件祭往。
4.增加了state數(shù)據(jù)處理伦意,把每個獨立頁面的數(shù)據(jù)集中放在對應的state里面,方便查詢和管理數(shù)據(jù)硼补。
XuYang:
這個問題其實需要對整個框架的理解比較清楚才能回答驮肉。首先,項目中哪部分是react原有的流程已骇,哪部分是redux規(guī)定的流程离钝,哪部分是antd規(guī)定的流程票编,剩下的才是增加的部分。
首先說說react卵渴,項目中其實只有view和components再就是entries部分才是react的部分慧域。用于render頁面,定義路由浪读,改變state來改變頁面當前的展示昔榴。
再來說說redux,redux包括三個重要的部分瑟啃,action论泛,state和reducers。處理頁面邏輯蛹屿,和管理state屁奏。
再說說antd,antd只是頁面ui庫错负。使用的時候引用坟瓢。
除了以上的部分,可以說都是增加的部分犹撒。
首先折联,在entries的index中,可以看到const store = configureStore();這樣一句代碼识颊。這里將reducers诚镰,state,middleware 一起創(chuàng)建祥款。Reducers.js中將所有用到的reducers合并清笨。
并且在promiseMiddleware中,對請求遠程方法的參數(shù)和type進行了封裝和限制刃跛。添加了請求響應的狀態(tài)抠艾,并且在type中添加了'PENDING', 'SUCCESS', 'ERROR' 這些狀態(tài)。所以在reducers的響應操作中桨昙,我們需要在自己定義的type后面添加這些來進行處理检号。
在utils可以看到增加了一些常規(guī)操作,封裝了一些工具函數(shù)蛙酪。并且對Promise不存在的情況進行了創(chuàng)建一個Promise的操作齐苛。
在reducers中,我們可以看到都調用一個createReducer方法滤否,原生的reducers利用switch case來判斷type的操作脸狸,構建state。在util 的index.js中,定義了這個方法炊甲,可以直接通過type來得到對應的reducers的操作泥彤。并且封裝了params參數(shù)和payload參數(shù)。所以我們在響應操作的時候可以看到有data參數(shù)和params參數(shù)卿啡。
在api的中吟吝,封裝了ajax的數(shù)據(jù)請求操作。
在項目中使用的中間件颈娜,包括redux-thunk,redux-logger.處理異步function或者
Action剑逃。Logger打印日志,可以在控制臺中看到每一次的state的變化官辽。和state經(jīng)過的處理蛹磺。
多說一句,為什么要使用ES6同仆。我覺得ES6/7相對于ES55的語法其實有很大的改進萤捆,新增了很多很實用的功能。使用起來更加方便俗批。更符合面向對象的思想俗或。相對于以前ES5的各種操作,其實更加合理岁忘。所以用ES6 很有必要辛慰。對我們學習ES6也很有幫助。
LiQunBin:
開發(fā)的框架(在開源框架基礎上增加哪些部分干像?)
1.每個頁面的初值全存在一個reducers的一個文件里面而沒有在單獨的組件中去設置值帅腌,方便了對數(shù)據(jù)對象的管理和傳遞
2.以繼承的方式去創(chuàng)建組件
3.封裝了對數(shù)據(jù)格式處理的方法
Jack:
react+redux
react:React是一個View層的前端庫,它的理念是是使用組件定義界面(界面都寫在render里)
redux:
1.是什么:用來替代fb推薦的flux框架的另一種狀態(tài)管理庫麻汰。(同類的框架還有 Reflux狞膘、Flummox)。在我看來redux就是flux plus plus什乙。(類似于c++ 相對于 c)。redux將flux的每一個component擁有一個自己的store變成了全部component共用一個store已球。(雖然兩者的store不是同一個事物臣镣,但是我們在使用的時候可以忽略這一點智亮,因為他們都是存儲改變view的state的地方)弃舒。
2.為什么用它:解決了應用狀態(tài)存儲以及變更的問題聋呢。react負責貌美如花通铲,redux負責讓react每時每刻都與眾不同颅夺。因為View層距離state十萬八千里吧黄,前者是直接拿不到后者的拗慨,為了能夠改變view中的內容。(正常的流程:view—>actions—>store—>view)
3.提供了什么:subscribe(監(jiān)聽回調,基本沒用過短绸,看了相關文檔感覺用不上)、dispatch(發(fā)送action給store)证逻、getState(獲取store這個對象)和replaceReducer(沒用過)。
中間件:
applyMiddleware來自Redux可以包裝 store 的 dispatch()
thunk作用使action創(chuàng)建函數(shù)可以返回一個function代替一個action對象
3.react-redux:負責綁定(binding)react和redux這兩個框架的模塊
Provider: 一個react-redux提供的組件,用來告知組件們自己的state存在哪里
connect:模塊提供的用來將需要用到的外部數(shù)據(jù)與view進行連接的函數(shù)
mapStateToProps:遍歷state银酗,并轉換成props蛙讥,通過connect與view綁定
mapDispatchToProps:遍歷dispatch,并轉換成props经备,通過connect與view綁定
Bert:
正常情況下前端需要做哪些工作?
1、請求
2犁功、頁面功能
3、代碼編譯
這套開發(fā)框架又做了什么事情呢限嫌?
1奢讨、結合了哪些開源框架入录?
可以在package.json中看到該腳手架依賴的開源組件凡桥,組要的有:Redux啊掏、Antd相關刹孔、Webpack畦戒、superagent
2、腳手架在這些基礎上做了哪些事情?
基本信息查閱:React+redux+webpack 項目構建:初具規(guī)模
- api/api.js:在superagent的基礎功上增加分裝了一層寥院,處理Ajax請求
- api/service.js:基于Promise做模擬數(shù)據(jù)操作
- store/middlewares/:中間件
- afterApiMiddleware:基于Redux做了一層過濾器
- promiseMiddleware:基于Redux對Ajax請求做了- - 判斷,等待涧团、成功只磷、失敗
- store/configureStore:所有中間件由該文件做結合
- store/types:統(tǒng)一Action中的type規(guī)范
- util/index
- function createReducer:對reducer做處理,在
React+redux+webpack 項目構建:初具規(guī)模
文章中有描述
- function createReducer:對reducer做處理,在