首頁 web前端 js教程 分析:React-Router路由跳轉時觸發兩次render的情況

分析:React-Router路由跳轉時觸發兩次render的情況

Jul 22, 2017 pm 01:57 PM
react-router render 兩次

問題:React-Router路由跳轉時,render觸發兩次,導致頁面重複渲染。

原因:專案中使用的react-router ^3.x.x。 react-router路由跳轉時,this.props.location.action的值會有兩種狀態。這兩種狀態都會觸發render。故頁面渲染兩次。

     1、點擊Link時,this.props.location.action=PUSH,2、當瀏覽器前進後退時,this.props.location.action=POP。

     所以點擊了Link時,狀態先是PUSH,之後瀏覽器發生前進後退,狀態變成POP。

解決方案:在路由層,使用react週期函數 shouldComponentUpdate(生命週期不熟悉的同學請另查資料) 進行 this.props.location.action值得判斷。根據項目實際需要判斷值是PUSH,或是POP。

     本人選擇的是POP,因為專案中有些需求要使用到 window.location.hash='xxxxxxxx',這種情況PUSH是觸發不到的,所以路由跳轉會失敗。

1

1 shouldComponentUpdate() {2         // POP 浏览器前进后退, PUSH 点击Link3         return this.props.location.action === "POP"4 }

登入後複製

備註:facebook官方說此情況是 react-router 的BUG,已經在 ^4.x.x中修復了。

     以上內容均是本人在實際專案開發中所遇所得,每個人所遇BUG不同,請大神輕噴。謝謝! 

以上是分析:React-Router路由跳轉時觸發兩次render的情況的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

vue3怎麼透過render函數實現選單下拉框 vue3怎麼透過render函數實現選單下拉框 May 10, 2023 pm 04:28 PM

vue3怎麼透過render函數實現選單下拉框

事件冒泡為何會觸發兩次? 事件冒泡為何會觸發兩次? Feb 22, 2024 am 09:06 AM

事件冒泡為何會觸發兩次?

Mpeppe(MPEPE)幣:加密貨幣市場的新競爭者,吸引來自 Render(RNDR)和網路電腦(ICP)的投資者 Mpeppe(MPEPE)幣:加密貨幣市場的新競爭者,吸引來自 Render(RNDR)和網路電腦(ICP)的投資者 Sep 03, 2024 pm 02:03 PM

Mpeppe(MPEPE)幣:加密貨幣市場的新競爭者,吸引來自 Render(RNDR)和網路電腦(ICP)的投資者

render是渲染的意思嗎 render是渲染的意思嗎 Feb 02, 2023 pm 02:52 PM

render是渲染的意思嗎

HMD Slate Tab 5G 洩漏為中階平板電腦,搭載 Snapdragon 7s Gen 2、10.6 吋顯示器和 Lumia 設計 HMD Slate Tab 5G 洩漏為中階平板電腦,搭載 Snapdragon 7s Gen 2、10.6 吋顯示器和 Lumia 設計 Jun 18, 2024 pm 05:46 PM

HMD Slate Tab 5G 洩漏為中階平板電腦,搭載 Snapdragon 7s Gen 2、10.6 吋顯示器和 Lumia 設計

為何事件冒泡機制會觸發兩次? 為何事件冒泡機制會觸發兩次? Feb 25, 2024 am 09:24 AM

為何事件冒泡機制會觸發兩次?

Render幣值得長期持有嗎? Render幣值得投資嗎? Render幣值得長期持有嗎? Render幣值得投資嗎? Mar 06, 2024 am 08:31 AM

Render幣值得長期持有嗎? Render幣值得投資嗎?

DTX Exchange (DTX) – 線上交易的新時代 DTX Exchange (DTX) – 線上交易的新時代 Aug 12, 2024 am 12:24 AM

DTX Exchange (DTX) – 線上交易的新時代

See all articles