国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

keep-alive和router-view配合使用緩存整個(gè)路由頁面以及路由切換

這篇具有很好參考價(jià)值的文章主要介紹了keep-alive和router-view配合使用緩存整個(gè)路由頁面以及路由切換。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

keep-alive和router-view配合使用緩存整個(gè)路由頁面以及路由切換,緩存

實(shí)現(xiàn)內(nèi)容:通過vue實(shí)現(xiàn),在頁面有側(cè)邊欄動(dòng)態(tài)來展示當(dāng)前頁面流程,右邊進(jìn)行頁面的切換,左右兩邊都是組件,但是A/B/C組件的切換是通過keep-alive搭配router-view實(shí)現(xiàn)的,首先在當(dāng)前文件中創(chuàng)建五個(gè)文件:index.vue,A/B/C.vue,router.json
在index.vue中,實(shí)現(xiàn)的是整個(gè)頁面的布局,左邊組件的引入具體樣式看具體需求不再列出,右邊主頁面的內(nèi)容實(shí)現(xiàn)緩存如下:

<keep-alive>
	<router-view @toggle='toggleHander' />
</keep-alive>

toggle是A/B/C組件中emit事件綁定的,用來實(shí)現(xiàn)左邊欄動(dòng)態(tài)的切換,不再具體展示,具體頁面路由切換在具體的A/B/C頁面中,toggleHa
在router.json中我們將主頁面路由配置進(jìn)去:

{
	"pages":["pageA","pageB","pageC"]
}

通過這些能實(shí)現(xiàn)是基于在router.js里的配置
router.js文件關(guān)于這塊的處理

// 每個(gè)小文件里面的json
    const childernRouter = require(`@/${fileName}/router.json`)
    childernRouter.pages.forEach((childFileName)=>{
        const childComponentConfig=(resolve)=>require([`@/${fileName}/${childFileName}`],resolve)
        const childComponentName=upperFirst(
            camelCase(
                //	 剝?nèi)ノ募_頭的`'./`和結(jié)尾的擴(kuò)展名
                childComponentName.replace(/^\.\/(.*)\.w+$/,'$1')
            )
        )
        const child ={
            path:childFileName,
            name:fileName+'./'+childComponentName,
            component:childComponentConfig.default || childComponentConfig
        }
        singlePage.children.push(child)
    })
    singlePage.redirect = singlePage.path+'/'+singlePage.children.path // 根據(jù)配置的順序展示第一個(gè)
    // 構(gòu)造路由
    pageArr.push(singlePage)

router.js整個(gè)文件具體實(shí)現(xiàn)文章來源地址http://www.zghlxwxcb.cn/news/detail-573223.html

let pageArr=[]
// 整個(gè)項(xiàng)目的json 
let requireComponent=require('@/app.json')
requireComponent.pages.forEach((trade)=>{
    const fileName=trade.path
    // 獲取路由,路由懶加載
    const componentConfig=(resolve)=>require([`@/${fileName}`,resolve])
    const componentName=upperFirst(
        camelCase(
            //	 剝?nèi)ノ募_頭的`'./`和結(jié)尾的擴(kuò)展名
            fileName.replace(/^\.\/(.*)\.w+$/,'$1')
        )
    )
    let singlePage={
        path:'/'+fileName,
        name:String(String(componentName)),
        component:componentConfig.default || componentConfig,
        children:[],
        props:(route)=>({query:{transType:route.query.transType,oldTask:route.query.taskId}})
    }
    // 每個(gè)小文件里面的json
    const childernRouter = require(`@/${fileName}/router.json`)
    childernRouter.pages.forEach((childFileName)=>{
        const childComponentConfig=(resolve)=>require([`@/${fileName}/${childFileName}`],resolve)
        const childComponentName=upperFirst(
            camelCase(
                //	 剝?nèi)ノ募_頭的`'./`和結(jié)尾的擴(kuò)展名
                childComponentName.replace(/^\.\/(.*)\.w+$/,'$1')
            )
        )
        const child ={
            path:childFileName,
            name:fileName+'./'+childComponentName,
            component:childComponentConfig.default || childComponentConfig
        }
        singlePage.children.push(child)
    })
    singlePage.redirect = singlePage.path+'/'+singlePage.children.path // 根據(jù)配置的順序展示第一個(gè)
    // 構(gòu)造路由
    pageArr.push(singlePage)
})
// 如果路由默認(rèn)找不到匹配首頁
pageArr.push(
    {
        path:'*',
        redirect:pageArr[0].path, // 默認(rèn)跳轉(zhuǎn)到首頁
        component:pageArr[0].component 
    }
)
export const constantRouterMap= pageArr
export default new Router({
    mode:'hash',
    scrollBehavior:()=>({
        y:0
    }),
    routes:constantRouterMap,
    base:ProcessingInstruction.env.BASE_URL
})

到了這里,關(guān)于keep-alive和router-view配合使用緩存整個(gè)路由頁面以及路由切換的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • keep-alive組件緩存

    keep-alive組件緩存

    從 a跳b,a已經(jīng)銷毀,b重新渲染;b跳a,b銷毀a重新渲染 源組件銷毀,目標(biāo)組件渲染 組件緩存:組件實(shí)例等相關(guān)( ?包括vnode )存儲(chǔ)起來 重新渲染指的是:把視圖重新編譯成新的vnode-dom?diff-渲染成真實(shí)dom 真實(shí)dom被我移除了只是從頁面上移除,只是把vnode重新渲染成真實(shí)dom或者

    2024年01月21日
    瀏覽(24)
  • Vue-組件緩存-keep-alive

    在Vue.js中,組件的復(fù)用和緩存是一個(gè)重要的優(yōu)化手段。當(dāng)我們頻繁切換組件時(shí),頻繁的銷毀和重建會(huì)帶來一定的性能開銷。為了解決這個(gè)問題,Vue提供了一個(gè)名為 keep-alive 的抽象組件。下面我們將深入探討 keep-alive 的工作原理、使用場(chǎng)景和最佳實(shí)踐。 keep-alive是什么 keep-aliv

    2024年01月16日
    瀏覽(44)
  • keep-alive的作用和應(yīng)用

    keep-alive的作用和應(yīng)用

    keep-alive是Vue提供給我們的一個(gè)內(nèi)置組件,會(huì)緩存不活動(dòng)的組件實(shí)例,而不是銷毀它們。作為標(biāo)簽使用包裹這需要緩存的組件。 在組件切換過程中,把切換出的組件保存在內(nèi)存中,防止重新渲染DOM,減少加載時(shí)間及性能消耗,提高用戶體驗(yàn)。避免左慈重復(fù)渲染降低性能 舉個(gè)例

    2024年01月19日
    瀏覽(18)
  • vue使用路由router-view

    vue使用路由router-view

    前言: router-view 與 NavMenu 導(dǎo)航欄的配合,在 web 應(yīng)用中極為常見。其原理就是采用 SPA(single-page-application) 模式,就是只有一個(gè) Web 頁面的應(yīng)用,通過 router 來控制頁面的刷新和迭代。 提示: 以下示例基于 vue2.6.14 版本, vue-router3.5.2 版本, element-ui2.15.12 版本。 好了,廢話不多

    2024年02月13日
    瀏覽(23)
  • keep-alive組件的作用與原理

    原文合集地址如下,有需要的朋友可以關(guān)注 本文地址 “keep-alive” 是 Vue.js 中的一個(gè)特殊組件,用于緩存組件的狀態(tài),以提高應(yīng)用性能。在 Vue.js 中,組件通常是動(dòng)態(tài)創(chuàng)建和銷毀的,當(dāng)切換到另一個(gè)頁面或組件時(shí),之前的組件會(huì)被銷毀,再次進(jìn)入時(shí)會(huì)重新創(chuàng)建和初始化。這樣

    2024年02月12日
    瀏覽(19)
  • react 實(shí)現(xiàn)頁面狀態(tài)緩存(keep-alive)

    react 實(shí)現(xiàn)頁面狀態(tài)緩存(keep-alive)

    因?yàn)?react、vue都是單頁面應(yīng)用,路由跳轉(zhuǎn)時(shí),就會(huì)銷毀上一個(gè)頁面的組件。但是有些項(xiàng)目不想被銷毀,想保存狀態(tài)。 比如:h5項(xiàng)目跳轉(zhuǎn)其他頁面返回時(shí),頁面狀態(tài)不丟失。設(shè)想一個(gè) 頁面我滑倒了中間,然后跳轉(zhuǎn)到 詳情頁然后 返回,之前的頁面刷新了,回到頂部了肯定不行(

    2024年01月23日
    瀏覽(38)
  • vue3.0中的keep-alive

    vue3.0中的keep-alive

    keep-alive是vue中的一個(gè)內(nèi)置組件,通常用它來包裹一個(gè)動(dòng)態(tài)組件,keep-alive 包裹動(dòng)態(tài)組件時(shí),會(huì)緩存不活動(dòng)的組件實(shí)例,而不是銷毀它們。 它有兩個(gè)特殊的生命周期鉤子 activated 和 deactivated ,在vue3.0里面生命周期函數(shù)前面都要加上on, onActivated , onDeactivated 。當(dāng)組件在使用了kee

    2023年04月08日
    瀏覽(20)
  • keep-alive緩存三級(jí)及三級(jí)以上路由

    keep-alive緩存三級(jí)及三級(jí)以上路由

    需求:需要緩存這個(gè)出入記錄,當(dāng)tab切換時(shí)不重新加載,當(dāng)刷新頁面時(shí),或把這個(gè)關(guān)閉在重新打開時(shí)重新加載如圖: (我這里用的是芋道源碼的前端框架) 1、include 包含頁面組件name的這些組件頁面,會(huì)被緩存起來 2、exclude 除了這些name以外的頁面組件,會(huì)被緩存起來 3、沒有

    2024年02月09日
    瀏覽(20)
  • vue keep-alive 中的生命周期

    keep-alive 是 Vue 提供的一個(gè)內(nèi)置組件,用來對(duì)組件進(jìn)行緩存——在組件切換過程中將狀態(tài)保留在內(nèi)存中,防止重復(fù)渲染DOM。 如果為一個(gè)組件包裹了 keep-alive,那么它會(huì)多出兩個(gè)生命周期:deactivated、activated。同時(shí),beforeDestroy 和 destroyed 就不會(huì)再被觸發(fā)了,因?yàn)榻M件 不會(huì)被真正

    2024年02月12日
    瀏覽(23)
  • 【Vue3】keep-alive 緩存組件

    【Vue3】keep-alive 緩存組件

    當(dāng)在 Vue.js 中使用 keep-alive 組件時(shí),它將會(huì)緩存動(dòng)態(tài)組件,而不是每次渲染都銷毀和重新創(chuàng)建它們。這對(duì)于需要在組件間快速切換并且保持組件狀態(tài)的情況非常有用。 keep-alive 只能包含(或者說只能渲染)一個(gè)子組件,如果需要包含多個(gè)子組件,需要用 v-if 選擇某個(gè)確定的組

    2024年02月13日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包