1、Model:
(1)、namespace:空間名,類似redux的倉庫名。
(2)、state :存放state變量
(3)、reducers:一般用于修改state,可在function通過connect綁定到props里的dispatch直接調用。
payload:傳值的對象的別名,所以dispatch里的payload實際上就是給action.payload綁定了相關參數
(4)、effects:一般用于處理業務邏輯,包含三個方法,call,select,put,call用來調用api接口,可獲取返回值,接口有返回值才會繼續往下走。select用于獲取state變量。put作用的dispatch相同,可讓effects里的方法調用修改state的方法。
(5)subscriptions:這個一般用于監聽路由。比如,users路由觸發,切換到users頁面。react原來的寫法,你想在界面初始化的時候就做一些事情就得基于react的生命周期函數,,這里可以用這個監聽器代替。自帶dispatch ,dispatch可以調用reducers和effects.
query:是http 地址后面附帶的參數,方便傳參,不用通過路由配置傳參。
問題一:就像我之前寫在componentWillMount()里面的發送請求的方法,可以寫在這里?
答案:先監聽路由,確認被訪問,然后直接dispatch調用effects去請求API。每一次路由變更,所有的model的這個subscription的setup都會被觸發,所以這個的判斷一定要寫好。
2、Component:所有的UI組件
在components里面連接對應的Model,connect會把namespace對應的state綁定到props,并且還會綁定dispatch給props。