原文:https://blog.csdn.net/lizhen_software/article/details/79455150vue
一、model至關於vue的vuex,裏面包含了但向數據流的全部的控制react
二、在vue中咱們通常定義一個全局的頭部標題字段,而且在mounted中調dispatch改變,但在dva的model中這段分爲了兩個部分,其中effects是異步修改數據時調用的, 也就是在react的componentDidMount的生命週期裏面須要調用的是異步的effects的action,但若是是用戶操做的某個方法是,能夠直接調用reducers裏面的actionvuex
三、注意若是在組件中要調用dispatch的話,必須導入connect,而且注入,才能夠調用,否則會報不存在的方法瀏覽器
四、dva規定比較強制,若是你是異步的方法必須調用effects的action,絕對不能調用同步的reducers,不然會報錯,但同步的操做能夠調用異步的effects,但由於是異步的操做,數據有時不會直接變過來,若是是操做的話,建議用reducers的同步異步
五、2中說effects改變數據時不能直接修改state,要不直接用dispatch改變reducers中的某個值,要不直接將修改put進去,代碼以下:this
數據的改變發生一般是經過用戶交互行爲或者瀏覽器行爲(如路由跳轉等)觸發的,當此類行爲會改變數據的時候能夠經過 dispatch
發起一個 action,若是是同步行爲會直接經過 Reducers
改變 State
,若是是異步行爲(反作用)會先觸發 Effects
而後流向 Reducers
最終改變 State
spa