91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vue使用keep-alive后從部分頁面進入不緩存怎么解決

發布時間:2023-05-11 15:15:10 來源:億速云 閱讀:179 作者:iii 欄目:開發技術

這篇文章主要介紹了vue使用keep-alive后從部分頁面進入不緩存怎么解決的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇vue使用keep-alive后從部分頁面進入不緩存怎么解決文章都會有所收獲,下面我們一起來看看吧。

需求:

1:當前有頁面A-B-C三個板塊;

2:從頁面C返回頁面B時,B頁面數據之前數據不會被清空(keep-alive),且C頁面攜帶到B頁面的數據緩存(event-bus/vuex);

3:從A-頁面進入B頁面時,B頁面為初始化狀態。

實現:

1:借用路由鉤子函數,在進入B頁面時,對當前頁面進行兼容處理;

修改router路由中配置項

配置meta屬性和isBack標識,判斷當前頁面是從C頁面返回還是從其他頁面進入,具體配置如下:

{
    path: '/B',
    name: 'B',
    component: require('@/page/index.vue'),
    meta: {
        keepAlive: true, //當前頁面是否緩存,搭配keep-alive使用
        isBack: false // 判斷當前頁面是從C頁面返回還是從其他頁面進入,默認從A頁面進入
    }
},

判斷當前頁面是否需要緩存的頁面

再B頁面判斷當前頁面跳轉方式,通過beforeRouteEnter(to, from, next),來判斷路由是從哪里來跳轉的,如果是從C跳轉的,則將當前路由對象的meta.isBack設置為true,否則設為false。具體實現如下:

beforeRouteEnter(to, from, next) {
    if (from.path == "/C") {
        to.meta.isBack = true; 
    } else {
        to.meta.isBack = false;
    }
    next();
},

不需要緩存頁面,重置B頁面數據

從非C頁面進入B頁面時,都應重置當前頁面數據,所以需要在頁面加載之前(即activated),將之前獲取到的數據以及查詢條件清空。
activated()與deactivated()是兩個生命周期鉤子(生命周期函數)。
activated()與deactivated()是路由組件所獨有的兩個生命周期鉤子,用于捕獲路由組件的激活狀態。
activated路由組件被激活時觸發。
deactivated路由組件失活時觸發。

activated() {
    let that = this;
    // 第一次和非C頁面進入B頁面時 isBack都為false,即需要重置數據
    if (!this.route.meta.isBack) {
        // 重置數據操作
       
    }
    this.route.meta.isBack = false;
},

關于“vue使用keep-alive后從部分頁面進入不緩存怎么解決”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“vue使用keep-alive后從部分頁面進入不緩存怎么解決”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

古田县| 乌拉特前旗| 清水河县| 花莲县| 伊金霍洛旗| 盱眙县| 胶南市| 莱州市| 宽城| 吉安县| 北辰区| 汾西县| 望谟县| 舟山市| 民乐县| 南宫市| 松滋市| 梁平县| 靖江市| 绍兴市| 利川市| 永福县| 澄迈县| 孙吴县| 苏尼特右旗| 禹城市| 岳西县| 宁国市| 江陵县| 青田县| 伊金霍洛旗| 昌吉市| 高平市| 余姚市| 醴陵市| 江门市| 卢氏县| 台东县| 阜新| 洪泽县| 蒙山县|