真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

react如何實現(xiàn)跳轉前記住頁面狀態(tài)

這篇文章主要介紹了react如何實現(xiàn)跳轉前記住頁面狀態(tài)的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇react如何實現(xiàn)跳轉前記住頁面狀態(tài)文章都會有所收獲,下面我們一起來看看吧。

創(chuàng)新互聯(lián)主營景谷網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,APP應用開發(fā),景谷h5小程序開發(fā)搭建,景谷網(wǎng)站營銷推廣歡迎景谷等地區(qū)企業(yè)咨詢

react實現(xiàn)跳轉前記住頁面狀態(tài)的方法:1、監(jiān)聽path變化,當path變化時更新lastPath和currentPath到redux store中;2、在離開頁面A時,將頁面狀態(tài)保存到redux store中;3、如果redux store中的lastPath等于頁面B的path,則認為A是由B返回還原狀態(tài),否則不還原。

React 頁面返回保留上次狀態(tài)

需求

  • 頁面A跳轉到頁面B然后再返回頁面A,頁面A要還原離開前的狀態(tài);

  • 頁面A和頁面B有多個入口,從其它頁面跳轉到頁面A,頁面A不還原狀態(tài)。

設計

  • 監(jiān)聽path變化,當path變化時更新lastPath和currentPath到redux store中;

  • 離開頁面A時,將頁面狀態(tài)保存到redux store中;

  • 進入頁面A時,如果redux store中的lastPath等于頁面B的path,則認為A是由B返回還原狀態(tài),否則不還原。

實現(xiàn)

項目采用react-router + dva庫,實現(xiàn)部分會涉及相關技術。

監(jiān)聽path變化,通過history監(jiān)聽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 });
      });
    }
  }
};

頁面卸載時同步狀態(tài)到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頁面根據(jù)state判斷是否由B頁面返回。但當B有多個入口,返回時需要知道頁面來源,否則無法返回,邏輯稍顯復雜且容易出錯。

關于“react如何實現(xiàn)跳轉前記住頁面狀態(tài)”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“react如何實現(xiàn)跳轉前記住頁面狀態(tài)”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


網(wǎng)頁名稱:react如何實現(xiàn)跳轉前記住頁面狀態(tài)
網(wǎng)頁鏈接:http://weahome.cn/article/gsdgei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部