国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

解決vue頁面刷新或者后退參數丟失的問題

2019-11-19 14:11:04
字體:
來源:轉載
供稿:網友

在toB的項目中,會經常遇到列表數據篩選查詢的情景,當要打開某一項的詳情頁或者暫時離開列表頁,再返回(后退時),選擇的篩選條件會全部丟失,辛辛苦苦選擇好的條件全沒了,還得重新選擇,如果有分頁的更頭大,還得重新一頁頁翻到之前看到的那一頁,用戶體驗極度不友好。

我的解決有兩種:

第一種方法:用vue 的<keep-alive>,即在<router-view>外套一層<keep-alive>。

雖然可以達到一定效果,但是控制起來比較麻煩,比如項目中并不是所有頁面都需要緩存,代碼寫起來復雜

第二種方法:直接用localStorage,簡單粗暴(推薦)

代碼如下:

list.vue

export default {    data () {      return {        searchForm:{          project_name:'',          status:'',          city:'',          round:'',          fund:'',          charge:'',          page: 1        },      },      beforeRouteLeave(to, from, next){      //打開詳情頁(或者下一個任意界面)之前,把篩選條件保存到localStorage,如果離開列表頁并且打開的不是詳情頁則清除,也可以選擇不清除      if (to.name == 'Detail') {        let condition = JSON.stringify(this.searchForm)        localStorage.setItem('condition', condition)      }else{        localStorage.removeItem('condition')      }      next()    },    created(){      //從localStorage中讀取條件并賦值給查詢表單      let condition = localStorage.getItem('condition')      if (condition != null) {       this.searchForm = JSON.parse(condition)      }      this.$http.get('http://example.com/api/test', {params: this.searchForm})      .then((response)=>{        console.log(response.data)      }).catch((error)=>{        console.log(error)      })    }  }}

這種方法也受限于localStorage的局限性,不過可以通過使用cookie來彌補,具體不再詳述。

以上這篇解決vue頁面刷新或者后退參數丟失的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泊头市| 大关县| 齐齐哈尔市| 兴海县| 井冈山市| 扎兰屯市| 屏边| 娄烦县| 巧家县| 桦川县| 南宫市| 丹江口市| 峨边| 包头市| 新郑市| 青田县| 磐安县| 余姚市| 江北区| 林周县| 宁德市| 蕲春县| 沈阳市| 阿巴嘎旗| 越西县| 满洲里市| 渭南市| 宿州市| 常宁市| 乌恰县| 华安县| 常州市| 寿宁县| 北安市| 镇远县| 商河县| 普安县| 什邡市| 定州市| 土默特左旗| 察雅县|