最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue實(shí)現(xiàn)前進(jìn)刷新后退不刷新效果

 更新時(shí)間:2018年01月26日 09:08:46   作者:iceuncle  
這篇文章主要介紹了vue實(shí)現(xiàn)前進(jìn)刷新,后退不刷新效果,即加載過的界面能緩存起來(lái)(返回不用重新加載),關(guān)閉的界面能被銷毀掉(再進(jìn)入時(shí)重新加載)。本文給大家分享實(shí)現(xiàn)思路,需要的朋友可以參考下

最近在用vue嘗試著做移動(dòng)端的項(xiàng)目。希望實(shí)現(xiàn)前進(jìn)刷新、后退不刷新的效果。即加載過的界面能緩存起來(lái)(返回不用重新加載),關(guān)閉的界面能被銷毀掉(再進(jìn)入時(shí)重新加載)。例如對(duì)a->b->c 前進(jìn)(b,c)刷新,c->b->a 后退(b,a)不刷新。

由于 keep-alive 會(huì)把所有加載的過的界面都緩存起來(lái),沒法實(shí)現(xiàn)返回時(shí)將界面銷毀掉,導(dǎo)致再進(jìn)入時(shí)沒有重新加載這個(gè)界面。于是首先想到的方案是在點(diǎn)擊界面上返回按鈕的時(shí)候,調(diào)用 this.$destroy(true) 來(lái)將界面銷毀掉。但是在移動(dòng)端 android設(shè)備上會(huì)有物理返回鍵,如果通過物理返回鍵返回的話,就沒法處理了。雖然可以重寫android的返回事件,來(lái)調(diào)用js的方法,但是調(diào)用的是js的全局方法,沒法具體讓在最上層的那個(gè)界面銷毀掉。

于是就需要另辟蹊徑了。還好這篇文章給了我啟發(fā) vue-router 之 keep-alive ,多謝作者的分享。

要是能夠知道路由是前進(jìn)還是后退就好了,這樣的話我就能在后退的時(shí)候讓 from 路由的 keepAlive 置為 false , to 路由的 keepAlive 置為 ture ,就能在再次前進(jìn)時(shí),重新加載之前這個(gè) keepAlive 被置為 false 的路由了。

廢話不多說了,這里模擬有三個(gè)界面 login 到 server 到 main 。

首先我給這三個(gè)界面路由的 path 設(shè)置了嚴(yán)格的層級(jí)關(guān)系 ,并設(shè)置keepAlive都是true,默認(rèn)都是需要緩存。

const router = new Router({
 routes: [
  {
   path: '/',
   redirect: '/login'
  },
  {
   path: '/login',
   component: Login,
   meta: {
    keepAlive: true
   }
  },
  {
   path: '/login/server',
   component: ServerList,
   meta: {
    keepAlive: true
   }
  },
  {
   path: '/login/server/main',
   component: Main,
   meta: {
    keepAlive: true
   }
  }
 ]
})

由于這三個(gè)界面path的層級(jí)不同,我就能通過 beforeEach 這個(gè)鉤子判斷出什么時(shí)候是后退了。在后退時(shí)將 from 路由的 keepAlive 置為 false , to 路由的 keepAlive 置為 ture 。

router.beforeEach((to, from, next) => {
 const toDepth = to.path.split('/').length
 const fromDepth = from.path.split('/').length
 if (toDepth < fromDepth) {
  console.log('后退。。。')
  from.meta.keepAlive = false
  to.meta.keepAlive = true
 }
 next()
})

最后需要緩存的界面用 keep-alive 包起來(lái),就能實(shí)現(xiàn)時(shí)前進(jìn)刷新,后退時(shí)不刷新的效果了。

<keep-alive>
     <router-view v-if="$route.meta.keepAlive">
      <!-- 這里是會(huì)被緩存的視圖組件 -->
     </router-view>
    </keep-alive>
    <router-view v-if="!$route.meta.keepAlive">
     <!-- 這里是不被緩存的視圖組件 -->
    </router-view>

總結(jié)

以上所述是小編給大家介紹的vue實(shí)現(xiàn)前進(jìn)刷新后退不刷新效果,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • vue3在table里使用elementUI的form表單驗(yàn)證的示例代碼

    vue3在table里使用elementUI的form表單驗(yàn)證的示例代碼

    這篇文章主要介紹了vue3在table里使用elementUI的form表單驗(yàn)證的示例代碼,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-12-12
  • vue 自定義全局方法,在組件里面的使用介紹

    vue 自定義全局方法,在組件里面的使用介紹

    下面小編就為大家介紹一下vue 自定義全局方法,在組件里面的使用。具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2018-02-02
  • 詳解mpvue實(shí)現(xiàn)對(duì)蘋果X安全區(qū)域的適配

    詳解mpvue實(shí)現(xiàn)對(duì)蘋果X安全區(qū)域的適配

    這篇文章主要介紹了詳解mpvue實(shí)現(xiàn)對(duì)蘋果X安全區(qū)域的適配,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • 使用 Element UI Table 的 slot-scope方法

    使用 Element UI Table 的 slot-scope方法

    這篇文章主要介紹了使用 Element UI Table 的 slot-scope方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • 解決VMware中vmware-vmx.exe進(jìn)程無(wú)法關(guān)閉以及死機(jī)等問題

    解決VMware中vmware-vmx.exe進(jìn)程無(wú)法關(guān)閉以及死機(jī)等問題

    這篇文章主要介紹了解決VMware中vmware-vmx.exe進(jìn)程無(wú)法關(guān)閉以及死機(jī)等問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • vue項(xiàng)目配置使用flow類型檢查的步驟

    vue項(xiàng)目配置使用flow類型檢查的步驟

    這篇文章主要介紹了vue項(xiàng)目配置使用flow類型檢查的步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • vue之將echart封裝為組件

    vue之將echart封裝為組件

    這篇文章主要介紹了vue之將echart封裝為組件,本文將會(huì)以雷達(dá)圖為案例,一步步講解在vue項(xiàng)目中如何使用echart,如何將其封裝為能重復(fù)調(diào)用的組件
    2018-06-06
  • Vue3 + TypeScript 開發(fā)總結(jié)

    Vue3 + TypeScript 開發(fā)總結(jié)

    本文直接上 Vue3 + TypeScript + Element Plus 開發(fā)的內(nèi)容,感興趣的話一起來(lái)看看吧
    2021-08-08
  • vsCode安裝配置創(chuàng)建Vue3項(xiàng)目全過程

    vsCode安裝配置創(chuàng)建Vue3項(xiàng)目全過程

    本文介紹了如何在Windows系統(tǒng)上安裝和配置Vue.js開發(fā)環(huán)境,包括安裝VS Code、Node.js、Vue CLI以及創(chuàng)建和啟動(dòng)一個(gè)Vue項(xiàng)目
    2025-01-01
  • Vue2 添加數(shù)據(jù)可視化支持的方法步驟

    Vue2 添加數(shù)據(jù)可視化支持的方法步驟

    這篇文章主要介紹了Vue2 添加數(shù)據(jù)可視化支持的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧
    2019-01-01

最新評(píng)論

沾化县| 鸡东县| 岳阳县| 秦安县| 成安县| 正定县| 满洲里市| 油尖旺区| 通山县| 罗定市| 青河县| 和硕县| 双辽市| 萝北县| 郯城县| 娄烦县| 扎鲁特旗| 鹿邑县| 双流县| 宝丰县| 临高县| 吴旗县| 翁源县| 晋中市| 礼泉县| 乌什县| 彩票| 贡山| 霍城县| 漳浦县| 乐亭县| 贵阳市| 宁远县| 辉县市| 沅陵县| 娄烦县| 乐业县| 潢川县| 吉安市| 盘山县| 天镇县|