成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

vue Tab切換以及緩存頁面處理的幾種方式

瀏覽:5日期:2022-09-29 13:01:14
目錄1.如何切換2.動態生成tab3.緩存組件3.1 keep-alive3.2 使用3.3 緩存組件的生命周期函數1.如何切換

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

//通過點擊就可以實現兩個組件來回切換<button @click='changeView'>切換view</button><component :is='currentView'></component> 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頁并且可以隨時關閉呢(如下圖)?

vue Tab切換以及緩存頁面處理的幾種方式

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

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

vue Tab切換以及緩存頁面處理的幾種方式

<menu> <menu-item v-for='(item,index) in menuList' :key='index' @click='addToTabList(item.path)'> <router-link :to='item.path'>{{item.name}}</router-link> <menu-item></menu>

<template> <menu />//menu代碼部分如上 <div class='right'> <tab-list> <tab-item v-for='(item,index) in tabList' :key='index'><router-link :to='item.path'>{{item.name}}</router-link><icon @click='deleteTab'></icon> </tab-item> </tab-list> <page-view> <router-view></router-view>//這里是頁面展示 </page-view> </div></template>

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

3.緩存組件

僅僅是做tab切換,遠遠是不夠的,畢竟大家想要tab頁就是要來回切換操作,我們需要保存他在不同tab里操作的進度,比如說填寫的表單信息,或者已經查詢好的數據列表等。那么我們要怎么緩存組件呢?只需要用到vue中的keep-alive組件

3.1 keep-alive <keep-alive>是Vue的內置組件,能在組件切換過程中將狀態保留在內存中,防止重復渲染DOM。 <keep-alive> 包裹動態組件時,會緩存不活動的組件實例,而不是銷毀它們。 <keep-alive> 與 <transition>相似,只是一個抽象組件,它不會在DOM樹中渲染(真實或者虛擬都不會),也不在父組件鏈中存在,比如:你永遠在 this.$parent 中找不到 keep-alive 。

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

//無效<keep-alive> <my-component></my-component></keep-alive>3.2 使用

3.2.1 老版本vue 2.1之前的使用

<keep-alive> <router-view v-if='$route.meta.keepAlive'></router-view></keep-alive><router-view v-if='!$route.meta.keepAlive'></router-view>

需要在路由信息里面設置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 比較新而且簡單的用法

直接緩存所有組件/路由

<keep-alive> <router-view/></keep-alive><keep-alive> <component :is='view'></component></keep-alive>

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

<keep-alive include='[’a’,’b’]'>//緩存name為a,b的組件<keep-alive include ='a,b'>//緩存name為a,b的組件<keep-alive :include='/^store/'>//緩存name以store開頭的組件 <router-view/>//可以為router-view <component :is='view'></component>//也可以是動態組件</keep-alive>

使用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

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

以上就是vue Tab切換以及緩存頁面處理的幾種方式的詳細內容,更多關于vue Tab切換以及緩存頁面處理的資料請關注好吧啦網其它相關文章!

標簽: Vue
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国内精品伊人久久久久av影院| 色哟哟日韩精品| 国产精品一区久久久久| 性刺激综合网| 一区二区三区四区乱视频| 国产一区二区无遮挡| 久久免费电影网| 亚洲福利视频导航| 怡红院精品视频在线观看极品| 国产色一区二区| 欧美成人日本| 欧美色手机在线观看| 国产精品国产自产拍高清av| 奇米精品一区二区三区在线观看| 亚洲免费在线| 丝袜国产日韩另类美女| 一本一道波多野结衣一区二区| 亚洲va在线va天堂| 亚洲一区精彩视频| 亚洲成人先锋电影| 亚洲永久网站| 久久久久免费观看| 91亚洲永久精品| 精品美女在线观看| 99热精品国产| 国产精品色在线观看| 精品亚洲aⅴ乱码一区二区三区| 日本韩国一区二区三区视频| 亚洲欧洲国产专区| 激情久久久久久| www久久久久| 欧美成人有码| 亚洲丝袜另类动漫二区| 一区二区欧美日韩| 国产欧美日韩精品一区| 国产精品国产一区二区| 一区二区三区免费看视频| 欧美日韩一区综合| 精品区一区二区| 成人精品小蝌蚪| 久久综合色综合88| 欧美一区91| 亚洲免费观看在线视频| 欧美专区18| 麻豆国产欧美日韩综合精品二区 | 日韩高清不卡一区二区三区| 色婷婷久久久亚洲一区二区三区| 久久电影网电视剧免费观看| 欧美一区二区三区在| 99国产精品久久久久| 国产精品毛片久久久久久久 | 日韩免费福利电影在线观看| 91视视频在线直接观看在线看网页在线看 | 国产精品美女一区二区在线观看| 亚洲国内精品| 日日嗨av一区二区三区四区| 一区二区三区四区五区精品| 爽好久久久欧美精品| 国产精品区二区三区日本| 青青草成人在线观看| 日韩欧美精品三级| 久久爱另类一区二区小说| 日韩欧美国产综合一区| 国产精品一区二区在线观看网站| 精品女同一区二区| 国产精品99久久久| 久久影院午夜片一区| av电影在线观看一区| 日韩毛片一二三区| 黄色一区三区| 亚洲一区二区在线免费观看视频| 在线免费观看日韩欧美| 天天综合天天综合色| 欧美电影在哪看比较好| 欧美一区免费视频| 亚洲风情在线资源站| 欧美日韩在线观看一区二区| 色综合久久中文综合久久牛| 国产成人免费视频一区| 精品成人一区二区| 一本色道久久综合亚洲精品高清 | 久久久www成人免费无遮挡大片| 成人精品电影在线观看| 中文字幕欧美激情| 欧美亚洲国产一区二区三区va | 亚洲免费网站| 成人动漫视频在线| 久久久一区二区三区捆绑**| 91蜜桃在线观看| 亚洲影视资源网| 777久久久精品| 国色天香一区二区| 亚洲男人电影天堂| 欧美日韩免费一区二区三区视频| 精品一区二区精品| 国产精品午夜春色av| 国产精品v一区二区三区| 天天爽夜夜爽夜夜爽精品视频| 久久婷婷一区| 丁香一区二区三区| 亚洲资源中文字幕| 精品免费视频一区二区| 欧美激情亚洲| 久久国产精品72免费观看| 日韩欧美综合在线| 91影院在线观看| 亚洲va天堂va国产va久| 精品国产乱子伦一区| 国产在线精品二区| 一区二区三区在线视频播放| 国产伦精品一区二区三区高清版| 偷窥少妇高潮呻吟av久久免费 | 亚洲成人精品一区| 久久人人爽人人爽| 欧美日本在线视频| 国产亚洲精品自拍| 蜜臀av性久久久久蜜臀aⅴ四虎| 久久综合狠狠综合久久激情 | 欧美三区免费完整视频在线观看| 国产精品99久久不卡二区| 亚洲精品国产品国语在线app| 欧洲人成人精品| 成人国产在线观看| 日本亚洲一区二区| 欧美久久久久久久久| 一本色道久久综合| 欧美成人免费在线| 丰满亚洲少妇av| 国产精品电影院| 欧美草草影院在线视频| 91精品福利视频| 99热精品在线| 久久99精品国产.久久久久久 | 久久亚洲二区三区| 欧美乱熟臀69xxxxxx| 久久久亚洲一区| 亚洲精选在线| 欧美日韩一区在线观看视频| 国产成人在线影院 | 欧美日韩一区二区三区在线观看免 | 99精品视频一区| 国产原创一区二区| 日本三级亚洲精品| www国产成人免费观看视频 深夜成人网 | 国产精品一二三在| 国产精品久久久久婷婷二区次| 午夜在线一区| 欧美日韩国产在线一区| 成人av在线播放网址| 一区2区3区在线看| 欧美一区二区三区成人| 久久一区二区三区av| 亚洲精品视频啊美女在线直播| 麻豆精品视频在线观看免费 | 日韩精品一二三| 亚洲一区二区三区四区在线免费观看 | 三级精品在线观看| 久久久国产一区二区三区四区小说| 欧洲另类一二三四区| 欧美精品国产| 日韩成人午夜精品| 久久久国产精品不卡| 日韩欧美aaaaaa| 久久久av水蜜桃| 91色婷婷久久久久合中文| 黄色小说综合网站| 久久国产尿小便嘘嘘| 亚洲日本在线a| 欧美一区二区三区啪啪| 欧美午夜精品一区| 午夜国产一区| 成人h版在线观看| 国产91露脸合集magnet| 亚洲图片欧美一区| 国产亚洲欧洲997久久综合| 久久久青草青青国产亚洲免观| 久久婷婷av| 欧美精品系列| 欧美1区2区视频| 欧美日韩国产欧| 在线国产欧美| av网站免费线看精品| 美女视频一区二区三区| 欧美aaaaaa午夜精品| 久久爱另类一区二区小说| 国产一区二区三区久久久| 国产成人免费视频网站| 99久久久精品免费观看国产蜜| a4yy欧美一区二区三区| 欧美一区久久| 亚洲成人自拍视频| 国产精品三上| 激情婷婷亚洲| 亚洲另类视频| 91天堂素人约啪| 免费人成在线不卡| 青青青伊人色综合久久| 激情图片小说一区| 日韩vs国产vs欧美| 一区二区三区蜜桃|