国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

再談vue前進刷新,后退不刷新,include實現(xiàn)方法。

layman / 2612人閱讀

摘要:并設(shè)置后退頁面數(shù)組。跳轉(zhuǎn)到或頁面,返回后回到緩存頁面,不刷新。由其他頁面進入則刷新。反正目前可以實現(xiàn)想要的效果。

關(guān)于填坑vue的前進刷新與后退不刷新,網(wǎng)上有很多方法,基本都是利用 keep-alive,但是試了好多種方法都不盡人意,后來有人提示說基于keepalive include,試驗了一下找到了些思路,暫時實驗可行,分享下共同探討學習,也許不是最佳解決方案,但確實有效。這里需要用到vuex,如不用vuex可以自行用Local Storage代替。

1.修改主路由頁面,keep-alive 標簽添加 include

    
2.同時此頁面添加自動computed includeds
computed:{
    includeds(){
        return this.$store.state.includeds
    }
 }
3.修改vuex的store,添加includeds對象,并添加commit方法。此處如不用vuex,也可自行設(shè)置Local Storage。
state: {
    includes: ""
},
mutations: {
    setIncludeds(state,setdata){
        state.includeds = setdata
    }
}
4.在main.js頁面添加beforeEach路由守衛(wèi)。并設(shè)置后退頁面數(shù)組。如不用全局守衛(wèi),也可在頁面多帶帶設(shè)置多帶帶寫beforeRouteLeave,方法相同。
router.beforeEach((to, from, next) => {
    let addPage = ["addProduct","newEdit","showNews"];
    if (!mCd.inArray(to.name,addPage)) { //此處mCd.inArray的方法為判斷數(shù)組是否包含,需要自己實現(xiàn)。
        store.commit("setIncludeds","");
    }
    next();
})
5.設(shè)置頁面(news.vue)的name和activated
export default{
    name: "news",
    data() {
        return {
            ....
        }
    },
    activated(){
        this.$store.commit("setIncludeds","news"); //此處設(shè)置name一致的名稱
    }
}
*注意:此處activated里設(shè)置的commit里第二個參數(shù),必須與name名稱一致。
6.然后就可以了。 原理解析:
1. 通過設(shè)置keepalive 的 include,當然也可以設(shè)置exclude,自行百度。include為要緩存的頁面name
2. 在頁面activated的時候設(shè)置為緩存當前頁面。
3. 頁面跳轉(zhuǎn)的時候判斷路由的to.name是否包含在已設(shè)置的數(shù)組中。
4. 跳轉(zhuǎn)到edit或show頁面,返回后回到緩存頁面,不刷新。由其他頁面進入則刷新。
5. 如果不設(shè)置路由全局守衛(wèi),也可以每個頁面多帶帶寫beforeRouteLeave
也不知道這樣寫對不對。反正目前可以實現(xiàn)想要的效果。另外路由嵌套不是很深。如果哪位大俠有更好的方法,歡迎提供。^_^

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/96124.html

相關(guān)文章

  • 另辟蹊徑:vue單頁面,多路由,前進刷新后退刷新

    摘要:如何添加這個條件,判斷用戶是否刷新了頁面呢我們知道,當使用后,只有第一次進入后會觸發(fā)鉤子函數(shù),再次進入就不再執(zhí)行了。 目的:vue-cli構(gòu)建的vue單頁面應(yīng)用,某些特定的頁面,實現(xiàn)前進刷新,后退不刷新,類似app般的用戶體驗。注: 此處的刷新特指當進入此頁面時,觸發(fā)ajax請求,向服務(wù)器獲取數(shù)據(jù)。不刷新特指當進入此頁面時,不觸發(fā)ajax請求,而是使用之前緩存的數(shù)據(jù),以便減少服務(wù)器請求...

    Ocean 評論0 收藏0
  • 實現(xiàn)一個前端路由,如何實現(xiàn)瀏覽器的前進后退

    摘要:執(zhí)行過程如下實現(xiàn)瀏覽器的前進后退第二個方法就是用兩個棧實現(xiàn)瀏覽器的前進后退功能。我們使用兩個棧,和,我們把首次瀏覽的頁面依次壓入棧,當點擊后退按鈕時,再依次從棧中出棧,并將出棧的數(shù)據(jù)依次放入棧。 showImg(https://segmentfault.com/img/bVbtK6U?w=1280&h=910); 如果要你實現(xiàn)一個前端路由,應(yīng)該如何實現(xiàn)瀏覽器的前進與后退 ? 2. 問題...

    劉東 評論0 收藏0
  • Vue 實現(xiàn)前進刷新后退刷新的效果

    摘要:點擊某個列表項,跳到詳情頁,再從詳情頁后退回到列表頁時,不刷新。也就是說從其他頁面進到列表頁,需要刷新獲取數(shù)據(jù),從詳情頁返回到列表頁時不要刷新。 更多文章 需求一: 在一個列表頁中,第一次進入的時候,請求獲取數(shù)據(jù)。點擊某個列表項,跳到詳情頁,再從詳情頁后退回到列表頁時,不刷新。也就是說從其他頁面進到列表頁,需要刷新獲取數(shù)據(jù),從詳情頁返回到列表頁時不要刷新。 解決方案 在 App.vue...

    zhisheng 評論0 收藏0
  • 原生 js 實現(xiàn)一個前端路由 router

    摘要:實現(xiàn)原理現(xiàn)在前端的路由實現(xiàn)一般有兩種,一種是路由,另外一種是路由。現(xiàn)在的前端主流框架的路由實現(xiàn)方式都會采用路由,本項目采用的也是。當值發(fā)生改變的時候,我們可以通過事件監(jiān)聽到,從而在回調(diào)函數(shù)里面觸發(fā)某些方法。 效果圖: showImg(https://segmentfault.com/img/remote/1460000018058419?w=422&h=744); 項目地址:https...

    gggggggbong 評論0 收藏0
  • 國內(nèi)存在感最低的前端API——瀏覽器路由

    摘要:最新一直在看關(guān)于和路由這塊的知識,最終發(fā)現(xiàn)這些路由框架的模塊功能的實現(xiàn)都是基于瀏覽器原生路由的。在瀏覽器中實現(xiàn)前端路由主要有兩種方式一個是我們常用的,另一個是提供的。該對象的和分別表示的各個部分,它們因此被稱為分解屬性。 最新一直在看關(guān)于 Vue 和 React 路由這塊的知識,最終發(fā)現(xiàn)這些路由框架的模塊功能的實現(xiàn)都是基于瀏覽器原生路由 API?的。本著追根溯源的初心,于是就想著將瀏覽...

    U2FsdGVkX1x 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<