国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站建設(shè)公司的服務(wù)器杭州seo全網(wǎng)營銷

網(wǎng)站建設(shè)公司的服務(wù)器,杭州seo全網(wǎng)營銷,公司網(wǎng)站開發(fā)計(jì)劃書,做餐飲公司網(wǎng)站文章目錄 keep-alive多級頁面緩存實(shí)現(xiàn)只適用于頁面是否緩存狀態(tài)不變的情況對于上面的問題提供一種解決方案 keep-alive多級頁面緩存實(shí)現(xiàn) 只適用于頁面是否緩存狀態(tài)不變的情況 網(wǎng)上有一種很普遍的教程,不使用keep-alive的include屬性,而是通過在路由表中…

文章目錄

    • keep-alive多級頁面緩存實(shí)現(xiàn)
        • 只適用于頁面是否緩存狀態(tài)不變的情況
        • 對于上面的問題提供一種解決方案

keep-alive多級頁面緩存實(shí)現(xiàn)

只適用于頁面是否緩存狀態(tài)不變的情況

網(wǎng)上有一種很普遍的教程,不使用keep-aliveinclude屬性,而是通過在路由表中添加meta: { keepAlive: true},通過v-if判斷是否使用keep-alive

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

這種寫法只適用于頁面是否緩存的狀態(tài)不變的情況

現(xiàn)實(shí)中遇到的場景是,有三個頁面(總覽頁、列表頁、詳情頁),三個頁面逐級跳轉(zhuǎn)(總覽頁 -> 列表頁 -> 詳情頁)。因?yàn)榱斜眄撌欠猪搼屑虞d的,用戶希望可以從詳情頁返回時可以直接定位到之前的位置

因此要實(shí)現(xiàn)的實(shí)際上為頁面緩存+記錄滾動條位置,這里先看頁面緩存

網(wǎng)上很多教程的寫法是,在列表頁使用beforeRouteLeave,動態(tài)設(shè)置keepAlive的值

// 列表頁
beforeRouteLeave(to, from, next) {if (to.name === "詳情頁") {from.meta.keepAlive = true; } else {from.meta.keepAlive = false;this.$destroy();}next();
},

乍一看沒什么問題,到詳情頁的時候?qū)eepAlive設(shè)為true進(jìn)行緩存,返回到總覽頁的時候設(shè)置為false取消緩存,但仔細(xì)想一下,這樣寫是晚一步的,是否緩存在剛進(jìn)入頁面時就定下來了,在beforeRouteLeave的時候修改keepAlive,相當(dāng)于修改的是下次進(jìn)入頁面時是否緩存

實(shí)際流程會變?yōu)?/p>

理想狀態(tài)下
總覽頁		此時列表頁路由的keepAlive默認(rèn)為true	點(diǎn)擊進(jìn)入列表頁
列表頁		點(diǎn)擊進(jìn)入詳情頁		此時會緩存列表頁,keepAlive仍為true
詳情頁		返回列表頁	 獲取緩存
這部分流程沒有問題,接下來
列表頁		返回總覽頁 	列表頁被銷毀,keepAlive變?yōu)閒alse
總覽頁		點(diǎn)擊進(jìn)入列表頁 	列表頁keepAlive為false
這次列表頁將不會被緩存,此時已經(jīng)出現(xiàn)問題

那我們是不是可以不設(shè)置from.meta.keepAlive = false;,只在返回時銷毀keep-alive的緩存,此時又出現(xiàn)了一個新的問題,在使用this.$destroy();銷毀組件后會導(dǎo)致緩存異常(回退時不使用緩存的列表頁,而是創(chuàng)建了個新的,并且會一直緩存)。詳情可以百度this.$destroy()導(dǎo)致keep-alive緩存異常

Reference:vue-router時 keep-alive 頁面緩存問題解決 - 知乎

調(diào)用$destroy后,組件生命周期出現(xiàn)異常。 · Issue #6961 · vuejs/vue · GitHub

所以要實(shí)現(xiàn)類似功能,就使用include和exclude,很多帖子純純的坑

對于上面的問題提供一種解決方案

還是對需要緩存的路由添加meta: { keepAlive: true}

維護(hù)一個頁面棧,將訪問過的頁面添加進(jìn)去,如果當(dāng)前進(jìn)入的頁面在之前訪問過,代表是回退操作,則將頁面棧中在本頁面之后的數(shù)據(jù)刪除,使用include記得要給組件添加name

<template><div id="app"><keep-alive :include="cachePageList"><router-view></router-view></keep-alive></div>
</template>
<script>export default {data(){return {pageRouteList: [] // 訪問過的頁面棧}},computed: {cachePageList(){// 緩存只取頁面棧中router設(shè)置了keepAlive的return this.pageRouteList.filter(route => route.meta.keepAlive).map(route => route.name)}},watch: {$route(to, from) {const index = this.pageRouteList.findIndex(route => route.fullPath === to.fullPath)const isVisited = index !== -1if (!isVisited) {this.pageRouteList.push(to)} else {this.pageRouteList.splice(index + 1)}}}}
</script>
http://m.aloenet.com.cn/news/1501.html

相關(guān)文章:

  • 建站公司合肥百度的關(guān)鍵詞優(yōu)化
  • wordpress頁面多打開空白頁seo服務(wù)運(yùn)用什么技術(shù)
  • 畢設(shè)做網(wǎng)站答辯稿外貿(mào)營銷策略都有哪些
  • 云虛擬主機(jī)做二個網(wǎng)站網(wǎng)站查詢域名ip
  • 網(wǎng)站充值平臺怎么做的湖南百度推廣公司
  • 怎么在手機(jī)上制作網(wǎng)站嗎網(wǎng)上競價平臺
  • 網(wǎng)站開發(fā)過程無錫網(wǎng)站排名公司
  • 網(wǎng)站推廣需要域名遷移嘉興seo外包服務(wù)商
  • 土巴兔裝修貴嗎seo的最終是為了達(dá)到
  • 網(wǎng)站建設(shè)的基礎(chǔ)知識與維護(hù)百度關(guān)鍵詞廣告怎么收費(fèi)
  • 設(shè)置自己的網(wǎng)站三亞百度推廣公司電話
  • 翠竹營銷網(wǎng)站設(shè)計(jì)知名的seo快速排名多少錢
  • 西安網(wǎng)站策劃設(shè)計(jì)中國移動有免費(fèi)的視頻app
  • 網(wǎng)站規(guī)劃怎么寫英文seo兼職
  • php企業(yè)網(wǎng)站開發(fā)框架電商產(chǎn)品推廣方案
  • 環(huán)球影城漫游卡持卡人是什么意思重慶seo優(yōu)化公司
  • 鄭州 做網(wǎng)站優(yōu)化大師官網(wǎng)下載安裝
  • 國內(nèi)機(jī)加工訂單百度seo公司一路火
  • 東莞建設(shè)質(zhì)監(jiān)網(wǎng)站網(wǎng)站制作需要多少錢
  • wordpress做社交網(wǎng)站嗎放心網(wǎng)站推廣優(yōu)化咨詢
  • 嬰兒衣服做的網(wǎng)站域名注冊管理機(jī)構(gòu)
  • 怎么給領(lǐng)導(dǎo)做網(wǎng)站分析網(wǎng)站鏈接查詢
  • 網(wǎng)站開發(fā)的實(shí)訓(xùn)報(bào)告前端開發(fā)
  • 怎樣做水族館網(wǎng)站關(guān)鍵詞在線試聽免費(fèi)
  • 做外貿(mào)賣小商品是哪個網(wǎng)站在線識圖
  • 哪些可以免費(fèi)做網(wǎng)站推廣優(yōu)化關(guān)鍵詞
  • 合肥網(wǎng)站建設(shè)設(shè)計(jì)海外免費(fèi)網(wǎng)站推廣
  • 特產(chǎn)網(wǎng)站開發(fā)的好處怎么在百度發(fā)布信息
  • 松原做網(wǎng)站公司刷排名的軟件是什么
  • 網(wǎng)站流量如何提高網(wǎng)站友情鏈接購買