日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

vue中怎么清空tab选项卡的缓存_vue Tab切换以及缓存页面处理的几种方式

發布時間:2025/10/17 vue 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue中怎么清空tab选项卡的缓存_vue Tab切换以及缓存页面处理的几种方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

相信tab切換對于大家來說都不算陌生,后臺管理系統中多會用到。如果不知道的話,可以看一下瀏覽器上方的標簽頁切換,大概效果就是這樣。

1.如何切換

使用動態組件,相信大家都能看懂(部分代碼省略)

//通過點擊就可以實現兩個組件來回切換

切換view

import pageA from "@/views/pageA";

import pageB from "@/views/pageB";

computed: {

currentView(){

return this.viewList[this.index];

}

},

methods: {

changeView() {

this.index=(++this.index)%2

}

}

注:這個多用于單頁下的幾個子模塊使用,一般切換比較多使用下面的路由

使用路由(這個就是配置路由的問題了,不作贅述)2.動態生成tab

一般UI框架給我們的tab切換都像是上面的那種,需要自己寫入幾個tab頁之類的配置。但是我們如果想要通過點擊左邊的目錄來生成一個tab頁并且可以隨時關閉呢(如下圖)?

只需要給路由一個點擊事件,把你的路由地址保存到一個列表,渲染成另一個平鋪的tab目錄即可

假設你的布局是這樣,左邊的目錄,上邊的tab,有字的是頁面

{{item.name}}

//menu代碼部分如上

{{item.name}}

//這里是頁面展示

以上代碼并非實際代碼,只提供一個大概的思路。至于addToTabList和deleteTab怎么做就是數組方法的簡單push和splice操作了。為了效果好看,我們可能還需要一些tab的active樣式,這里不作演示。

3.緩存組件

僅僅是做tab切換,遠遠是不夠的,畢竟大家想要tab頁就是要來回切換操作,我們需要保存他在不同tab里操作的進度,比如說填寫的表單信息,或者已經查詢好的數據列表等。

那么我們要怎么緩存組件呢?

只需要用到vue中的keep-alive組件

3.1 keep-alive

是Vue的內置組件,能在組件切換過程中將狀態保留在內存中,防止重復渲染DOM。

包裹動態組件時,會緩存不活動的組件實例,而不是銷毀它們。

與 相似,只是一個抽象組件,它不會在DOM樹中渲染(真實或者虛擬都不會),也不在父組件鏈中存在,比如:你永遠在 this.$parent 中找不到 keep-alive 。

注:不能使用keep-alive來緩存固定組件,會無效

//無效

3.2 使用

3.2.1 老版本vue 2.1之前的使用

需要在路由信息里面設置router的元信息meta

export default new Router({

routes: [

{

path: '/a',

name: 'A',

component: A,

meta: {

keepAlive: false // 不需要緩存

}

},

{

path: '/b',

name: 'B',

component: B,

meta: {

keepAlive: true // 需要被緩存

}

}

]

})

3.2.2 比較新而且簡單的用法

直接緩存所有組件/路由

使用include來處理需要緩存的組件/路由

include有幾種用法,可以是數組,字符串用標點隔開,也可以是正則,使用正則的時候需要使用v-bind來綁定。

//緩存name為a,b的組件

//緩存name為a,b的組件

//緩存name以store開頭的組件

//可以為router-view

//也可以是動態組件

使用exclude來排除不需要緩存的路由

跟include正好相反,在exclude里的組件不會被緩存。用法類似,不作贅述

3.2.3 一種比較奇怪的情況

當頁面跳轉方式有A->C和B->C兩種,但是我們從A到C的時候,不需要緩存,從B到C的時候需要緩存。這時候就要用到路由的鉤子結合老版本用法來實現了。

export default {

data() {

return {};

},

methods: {},

beforeRouteLeave(to, from, next) {

to.meta.keepAlive = false; // 讓下一頁不緩存

next();

}

};

export default {

data() {

return {};

},

methods: {},

beforeRouteLeave(to, from, next) {

// 設置下一個路由的 meta

to.meta.keepAlive = true; //下一頁緩存

next();

}

};

3.3 緩存組件的生命周期函數

緩存組件第一次打開的時候,和普通組件一樣,也需要執行created, mounted等函數。

但是在被再次激活和被停用時,這幾個普通組件的生命周期函數都不會執行,會執行兩個比較獨特的生命周期函數。

activated

這個會在緩存的組件重新激活時調用

deactivated

這個會在緩存的組件停用時調用

結語

這個是很基礎的知識,放在筆記里很久了,不過之前記得有點亂,今天拿出來抖一下塵~

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持谷谷點程序。

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的vue中怎么清空tab选项卡的缓存_vue Tab切换以及缓存页面处理的几种方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。