国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

vue 詳情頁返回列表頁,保留列表頁之前的篩選條件

lowett / 948人閱讀

摘要:需求背景再列表頁進行一系列的篩選條件之后,點擊某一個進入詳情頁,當從詳情頁返回列表頁的時候,需要保留之前的篩選條件。

需求背景
    再列表頁進行一系列的篩選條件之后,點擊某一個進入詳情頁,當從詳情頁返回列表頁的時候,需要保留之前的篩選條件。 
    
之前的實現(xiàn)方法
    路由跳轉的時候,把篩選條件json對象放到query中去,傳到詳情頁,返回的時候再帶回來,會導致在url后面一直會有這么一堆東西
新的實現(xiàn)方法:
**vuex + cookie**
    ### vuex ####
        state: {
            changeFilter: {}//變更列表篩選條件
        },
        mutations: {
            setChangeFilter (state, changeFilter) {
                state.changeFilter = changeFilter;
            }
        }
    
    ### cookie ###
        //設置cookie
        Vue.prototype.setCookie = function (name, value, day) {
            if (day !== 0) {
                var expires = day * 24 * 60 * 60 * 1000;
                var date = new Date(+new Date() + expires);
                document.cookie = name + "=" + escape(JSON.stringify(value)) + ";expires=" + date.toUTCString();
            } else {
                document.cookie = name + "=" + + escape(JSON.stringify(value));
            }
        };
        //獲取cookie
        Vue.prototype.getCookie = function (name) {
            var arr;
            var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
            if (arr = document.cookie.match(reg))
                return JSON.parse(unescape(arr[2]));
            else 
                return null
        };
    ### list.vue ####
        var isFromDetailBol = false;//是否是從詳情頁過來的,來決定是否加載param
        methods: {
            goToDetail (id) {
                //設置cookie & vuex
                this.$store.commit("setChangeFilter",this.param)
                this.setCookie("changeFilter",this.param,1);
                this.$router.push({
                    path: "/versionflow/changeinfo",
                    query: {
                        id: id
                    }
                });
            }
        },
        created:function () {
            if ( isFromDetailBol) {
                var filter = (JSON.stringify(this.$store.state.changeFilter) == "{}") ? this.getCookie("changeFilter") : this.$store.state.changeFilter;
                if (JSON.stringify(filter) != "{}") {//這里不能使用 if(filter) ,filter為空的時候他的值為{}
                    this.param = filter;
                    this.currentPage = this.param.page;
                    this.changeTypeData.changeSelected = this.param.status;
                };
            };
          this.getBranchList(this.param);//進入列表頁的時候請求數(shù)據(jù)的方法
        },
        beforeRouteEnter: function (to,from,next) {
            if (from.name == "changeinfo"){
                isFromDetailBol = true;
            };
            next();
            //一開始的時候我是在這里來進行數(shù)據(jù)的操作的,這里不能直接獲得this,需要 next ((vm) =>{ vm.$stroe.state.changeFilter })這樣獲取,而且next里的方法要在create之后執(zhí)行(這里他和組件其他鉤子函數(shù)的執(zhí)行順序需要了解一下去           
               
                                           
                       
                 

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97718.html

相關文章

  • Vue利用History記錄上一數(shù)據(jù)方法實例

    摘要:使用開始支持,通過方式,將頁碼作為參數(shù)存儲在中,將選擇條件存儲在中尚不清楚數(shù)據(jù)具體是存儲在哪里通過方式獲取頁碼通過方式獲取存儲的選擇條件。具體實現(xiàn)技術選擇開關為分頁組件添加一個開關,因為需要灰度上線,萬一有問題,要調整的頁面也只有一個。 這篇文章主要給大家介紹了關于Vue利用History記錄上一頁面的數(shù)據(jù)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學...

    Michael_Ding 評論0 收藏0
  • Vue利用History記錄上一數(shù)據(jù)方法實例

    摘要:使用開始支持,通過方式,將頁碼作為參數(shù)存儲在中,將選擇條件存儲在中尚不清楚數(shù)據(jù)具體是存儲在哪里通過方式獲取頁碼通過方式獲取存儲的選擇條件。具體實現(xiàn)技術選擇開關為分頁組件添加一個開關,因為需要灰度上線,萬一有問題,要調整的頁面也只有一個。 這篇文章主要給大家介紹了關于Vue利用History記錄上一頁面的數(shù)據(jù)的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學...

    Magicer 評論0 收藏0
  • vue項目中keep-alive緩存,從詳情返回列表時保存上一步信息

    摘要:問題由來最近用做前端項目,從查詢頁面進入詳情頁時,返回頁面需要保留上次的查詢條件,表格當前頁數(shù)。從其他菜單進去,不需要緩存,要保持頁面的初始狀態(tài)。當進入詳情頁,需要對該條數(shù)據(jù)進行修改時,修改成功后返回,應該更新列表。 問題由來 1、最近用vue做前端項目,從查詢頁面進入詳情頁時,返回頁面需要保留上次的查詢條件,表格當前頁數(shù)。2、從其他菜單進去,不需要緩存,要保持頁面的初始狀態(tài)。基于上面...

    justjavac 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<