日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dva使用心得

發布時間:2023/12/1 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dva使用心得 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

組件在異步數據到來前已經完成初始化,是導致constructor中無法取到所需數據的原因。所以最直接的方法,就是修改組件創建的時間

//把原來的組件內部控制顯示
/* <ComponentName show={modelName.show}/> */
//更改為狀態直接控制組件是否存在
{
? modelName.show && <ComponentName/>
}
//或者
{
? modelName.show ? <ComponentName/> : null
}

//或者更嚴謹一點
//由于項目中加入了用戶數據獲取失敗,需重新登錄,所以也就沒有加上后面這個
{
? modelName.show && modelName.needData && <ComponentName/>
}

目標組件不會在頁面加載時就初始化

而是在用戶點擊控制按鈕,需要使用組件時,才初始化

?問題and心得:

1.初始化數據是怎么執行的。

2.connect怎么傳輸數據的。

3.什么時候寫全局model,什么時候寫局部model。

4.什么時候會是同步,什么時候使用同步。

5.能否使用@connect({sms})來把model層的數據傳遞到當前組件。通過this.props.sms可以獲取到model里sms.js中的state數據)

6.流程:dispatch時候models里面的effect,models中的effect會yield call已經import進來的service里面的action,然后service里面,action會調用request,把url和數據傳輸給后臺,然后在models里面yield完畢后,能獲取到responce傳過來的數據。

7.model相當于vue的vuex,里面包含了但向數據流的所有的控制

8.在vue中我們一般定義一個全局的頭部標題字段,并且在mounted中調dispatch改變,但在dva的model中這段分為了兩個部分,其中effects是異步修改數據時調用的, 也就是在react的componentDidMount的生命周期里面需要調用的是異步的effects的action,但如果是用戶操作的某個方法是,可以直接調用reducers里面的action

9、注意如果在組件中要調用dispatch的話,必須導入connect,并且注入,才可以調用,不然會報不存在的方法

10、dva規定比較強制,如果你是異步的方法必須調用effects的action,絕對不能調用同步的reducers,否則會報錯,但同步的操作可以調用異步的effects,但因為是異步的操作,數據有時不會直接變過來,如果是操作的話,建議用reducers的同步

11.call:執行異步函數(以異步的方式調用函數)

put:發出一個 Action,類似于 dispatch

select:從state中獲取相關的數據

take 獲取發送的數據

12.需要數據時,是否需要在componentDidMount里面去請求。

13.query是請求的哪兒

14.延遲加載

1.能否使用@connect({sms})來把model層的數據傳遞到當前組件。通過this.props.sms可以獲取到model里sms.js中的state數據)

?

2.流程:dispatch時候models里面的effect,models中的effect會yield call已經import進來的service里面的action,然后service里面,action會調用request,把url和數據傳輸給后臺,然后在models里面yield完畢后,能獲取到responce傳過來的數據

@font-face { font-family: "Times New Roman"; }@font-face { font-family: "宋體"; }@font-face { font-family: "Calibri"; }p.MsoNormal { margin: 0pt 0pt 0.0001pt; text-align: justify; font-family: Calibri; font-size: 10.5pt; }span.msoIns { text-decoration: underline; color: blue; }span.msoDel { text-decoration: line-through; color: red; }div.Section0 { }

轉載于:https://www.cnblogs.com/zz-zrr/p/9681152.html

總結

以上是生活随笔為你收集整理的dva使用心得的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。