react實現跳轉前記住頁面狀態的方法:1、監聽path變化,當path變化時更新lastPath和currentPath到redux store中;2、離開頁面A時,將頁面狀態保存到redux store中;3.如果redux store中的lastPath等於頁面B的path,則認為A是由B傳回還原狀態,否則不還原。
本教學操作環境:Windows10系統、react18.0.0版、Dell G3電腦。
react跳轉前記住頁面狀態怎麼實現?
React 頁面返回保留上次狀態
#頁面A跳到頁面B然後再回到頁面A,頁面A要還原離開前的狀態;
#頁面A和頁面B有多個入口,從其它頁面跳到頁面A,頁面A不還原狀態。
設計
監聽path變化,當path變化時更新lastPath和currentPath到redux store;
離開頁面A時,將頁面狀態儲存到redux store中;
進入頁面A時,如果redux store中的lastPath等於頁面B的path,則認為A是由B返回還原狀態,否則不還原。
實作
專案採用react-router dva函式庫,實作部分會涉及相關技術。
監聽path變化,透過history監聽path變化,並記錄lastPath和currentPath。這裡採用dva的subscriptions,訂閱history,當path變化同步path資訊到state。
const model = { namespace: "global", state: { pathName: { last: "", current: "" }, }, reducers: { setPathName(state: any, { pathName }: any) { state.pathName.last = state.pathName.current; state.pathName.current = pathName; }, effects: { }, subscriptions: { setup({ history, dispatch }: any) { return history.listen(({ pathName }: any) => { dispatch({ type: "global/setPathName", pathName }); }); } } };
頁面卸載時同步狀態到redux store,例如:
componentWillUnmount() { const { dispatch } = this.props; const { activeKey } = this.state; dispatch({ type: "projectInfo/setProjectInfoPage", payload: { activeKey } }); }
頁面重新載入時,例如:
state = { activeKey: pathToRegexp(PagePath.B).exec(pathName.last) ? activeKey : "" };
pathToRegexp來自path-to-regexp函式庫,用於路由匹配,此處用來判斷上個頁面是否為頁面B。
其它方案
A頁面是否由B頁面傳回的判斷:B頁面回傳時加入state,history.push({ pathname: path, state: {from } });,進入A頁面依state判斷是否由B頁回傳。但當B有多個入口,返回時需要知道頁面來源,否則無法返回,邏輯稍微複雜且容易出錯。
總結
本文提出了一個頁面返回保留上次狀態的解決方案,適用於頁面有多個入口和出口的情況。此方案中採用了監聽history變更的方式,並記錄上次頁面位址,從而給是否還原狀態提供了依據。
推薦學習:《react影片教學》
以上是react跳轉前記住頁面狀態怎麼實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

No,youshouldn'tusemultipleIDsinthesameDOM.1)IDsmustbeuniqueperHTMLspecification,andusingduplicatescancauseinconsistentbrowserbehavior.2)Useclassesforstylingmultipleelements,attributeselectorsfortargetingbyattributes,anddescendantselectorsforstructure

html5aimstoenhancewebcapabilities,Makeitmoredynamic,互動,可及可訪問。 1)ITSupportsMultimediaElementsLikeAnd,消除innewingtheneedtheneedtheneedforplugins.2)SemanticeLelelemeneLementelementsimproveaCceccessibility inmproveAccessibility andcoderabilitile andcoderability.3)emply.3)lighteppoperable popperappoperable -poseive weepivewebappll

html5aimstoenhancewebdevelopmentanduserexperiencethroughsemantstructure,多媒體綜合和performanceimprovements.1)SemanticeLementLike like,和ImproVereAdiability and ImproVereAdabilityActibility.2)and tagsallowsemlessallowseamelesseamlessallowseamelesseamlesseamelesseamemelessmultimedimeDiaiaembediiaembedplugins.3)。 3)3)

html5isnotinerysecure,butitsfeaturescanleadtosecurityrisksifmissusedorimproperlyimplempled.1)usethesand andboxattributeIniframestoconoconoconoContoContoContoContoContoconToconToconToconToconToconTedContDedContentContentPrenerabilnerabilityLikeClickLickLickLickjAckJackJacking.2)

HTML5aimedtoenhancewebdevelopmentbyintroducingsemanticelements,nativemultimediasupport,improvedformelements,andofflinecapabilities,contrastingwiththelimitationsofHTML4andXHTML.1)Itintroducedsemantictagslike,,,improvingstructureandSEO.2)Nativeaudioand

使用ID選擇器在CSS中並非固有地不好,但應謹慎使用。 1)ID選擇器適用於唯一元素或JavaScript鉤子。 2)對於一般樣式,應使用類選擇器,因為它們更靈活和可維護。通過平衡ID和類的使用,可以實現更robust和efficient的CSS架構。

html5'sgoalsin2024focusonrefinement和optimization,notNewFeatures.1)增強performanceandeffipedroptimizedRendering.2)inviveAccessibilitywithRefinedwithRefinedTributesAndEllements.3)explityconcerns,尤其是withercercern.4.4)

html5aimedtotoimprovewebdevelopmentInfourKeyAreas:1)多中心供應,2)語義結構,3)formcapabilities.1)offlineandstorageoptions.1)html5intoryements html5introctosements introdements and toctosements and toctosements,簡化了inifyingmediaembedingmediabbeddingingandenhangingusexperience.2)newsements.2)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。