react緩存問題


問題一:
問題描述:

我們公司自己的react項目,先打包部署v1.1版本,一切正常。

v1.2版本做了很多頁面和功能的修改和新增,但是打包部署之后,發現有些界面還是保持了v1.1的狀態,比如有些新增按鈕沒有顯示出來等等。需要手動清空瀏覽器緩存之后才會更新成新頁面。

原因:

瀏覽器在訪問相同的url的時候,會根據一些頭信息來判斷是否重新渲染和向服務器請求資源,也就是說,如果url是相同的,瀏覽器就有可能偷懶直接從緩存里面加載了舊的資源。

解決:

在頁面url后面加hash,可以是時間戳或者隨機數,這樣每次url都不同,瀏覽器就不會偷懶了,每次都向服務器取最新的資源,也就解決了react的大坑---瀏覽器緩存問題。
轉載自:https://blog.csdn.net/github_36085116/article/details/56286186
問題2
復雜的react組件 setState不更新 - 使用函數作為setState的第一個參數
寫了一個很復雜的stateful組件,
結果在某一個功能上,
觸發函數它卻不更新視圖了,
難以排查,

問題的關鍵在這行代碼

this.setState({ value: doSomething(this.state.value) })

千萬不要在this.setState中使用this.state.xxx取值,
如果要使用this.state中的值,
使用函數作為第一個參數:

this.setState((prevState)=>({ value:  doSomething(prevState.value) })

轉載自:https://blog.csdn.net/sinat_24070543/article/details/80666676


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM