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

Vue Router 配合 keep-alive 不生效的問題及解決方案

 更新時間:2024年01月15日 10:45:05   作者:劫辭  
我在 app.vue 中使用了 router-view 標(biāo)簽,來展示 layout 和其他一級路由,然后在 layout 下的 main 區(qū)域使用了一個 router-view 來展示通過菜單欄切換的子路由,下面給大家介紹Vue Router 配合 keep-alive 不生效的問題及解決方案,感興趣的朋友一起看看吧

其實這個不生效的問題根本也不算一個問題,犯的錯和寫錯單詞差不多,但是也是一時上頭沒發(fā)現(xiàn),所以記錄一下,如果遇到同樣的問題,也希望可以幫助你早點看到這個哭笑不得的錯誤,哈哈哈

問題說明

  • 這里我寫了一個非常簡單的demo來復(fù)現(xiàn)我的問題,我的問題場景出自于一個后臺管理系統(tǒng),我在 app.vue 中使用了 router-view 標(biāo)簽,來展示 layout 和其他一級路由,然后在 layout 下的 main 區(qū)域使用了一個 router-view 來展示通過菜單欄切換的子路由
  • 問題就出在這里了,我把 keep-alive 寫在了 app.vue 下的 router-view 位置,然后子路由中需要緩存的組件,就無法實現(xiàn)緩存,當(dāng)時讓我還以為是什么bug,但是也沒發(fā)現(xiàn)什么問題,最后看官網(wǎng)也是這樣使用的,最后在思考一段時間后點開 router 文件,猛然驚醒,寫錯了位置

案例復(fù)現(xiàn)

demo 結(jié)構(gòu)

1.首先看一下我寫的簡單 demo

2.效果很簡單,點擊切換路由,切換的這個路由是子路由,路由結(jié)果如下:

const routes = [
	{
		path: '/',
		name: 'home',
		component: () => import('@/components/HomeView.vue'),
		children: [
			{
				path: 'about',
				component: () => import('@/views/AboutView.vue')
			},
			{
				path: 'message',
				component: () => import('@/views/MessageView.vue')
			}
		]
	}
]

3.這些我就不做贅述了,都非常簡單

4.app.vue 文件代碼如下:

<template>
	<div>
		<router-view></router-view>
	</div>
</template>
<script>
export default {}
</script>
<style scoped></style>

5.看了這個之后,在展示一下一級路由 HomeView,如下:

<template>
	<div class="home-container">
		<div class="header">
			<div class="tabs">
				<span
					class="tab"
					v-for="item in tabList"
					:key="item.path">
					<router-link :to="item.path">{{ item.name }}</router-link>
				</span>
			</div>
		</div>
		<div class="main">
            <!-- 展示子路由的路由視圖 -->
			<router-view></router-view>
		</div>
	</div>
</template>
<script>
export default {
	data() {
		return {
			tabList: [
				{ name: '關(guān)于', path: '/about' },
				{ name: '留言', path: '/message' }
			]
		}
	}
}
</script>
<style lang="less" scoped>
.home-container {
	width: 100vw;
	height: 100vh;
	display: flex;
	flex-direction: column;
	.header {
		height: 70px;
		display: flex;
		align-items: center;
		justify-content: center;
		border-bottom: 1px solid #666;
		.tab {
			margin-right: 20px;
			font-size: 20px;
		}
	}
	.main {
		flex: 1;
		width: 100%;
	}
}
</style>

6.其余兩個頁面和本次問題關(guān)系不大,而且都很簡單就不展示了

問題復(fù)現(xiàn)和解決

1.現(xiàn)在我打需求是在切換頁面的時候,可以讓留言頁面輸入的內(nèi)容進行緩存

2.我們在 app.vue 下是使用 keep-alive,看看效果

<template>
	<div>
		<!-- MessageVue 是留言組件的 name 屬性 -->
		<keep-alive :include="['MessageVue']">
			<router-view></router-view>
		</keep-alive>
	</div>
</template>

3.效果如圖:

4.現(xiàn)在是無法生效的,然后我們放在 HomeView 的路由出口上,如下:

<template>
	<div class="home-container">
		<div class="header">
			<div class="tabs">
				<span
					class="tab"
					v-for="item in tabList"
					:key="item.path">
					<router-link :to="item.path">{{ item.name }}</router-link>
				</span>
			</div>
		</div>
		<div class="main">
			<keep-alive :include="['MessageVue']">
				<router-view></router-view>
			</keep-alive>
		</div>
	</div>
</template>

5.現(xiàn)在在看一下效果,如圖:

6.解決還是非常簡單的,謹以此文記錄我這次馬虎的錯誤

到此這篇關(guān)于Vue Router 配合 keep-alive 不生效的問題的文章就介紹到這了,更多相關(guān)Vue Router keep-alive 不生效內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3實現(xiàn)監(jiān)聽store中state狀態(tài)變化的簡單方法

    vue3實現(xiàn)監(jiān)聽store中state狀態(tài)變化的簡單方法

    這篇文章主要給大家介紹了關(guān)于vue3實現(xiàn)監(jiān)聽store中state狀態(tài)變化的簡單方法,store是一個狀態(tài)管理工具,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • 詳解vue中移動端自適應(yīng)方案

    詳解vue中移動端自適應(yīng)方案

    這篇文章主要介紹了vue移動端自適應(yīng),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Vue使用Element實現(xiàn)增刪改查+打包的步驟

    Vue使用Element實現(xiàn)增刪改查+打包的步驟

    這篇文章主要介紹了Vue使用Element實現(xiàn)增刪改查+打包的步驟,幫助大家更好的理解和學(xué)習(xí)vue框架,感興趣的朋友可以了解下
    2020-11-11
  • vue3中watch監(jiān)聽的四種寫法

    vue3中watch監(jiān)聽的四種寫法

    本文主要介紹了vue3中watch監(jiān)聽的四種寫法,包含了ref 定義的數(shù)據(jù),reactive定義的數(shù)據(jù),函數(shù)返回的值(getter函數(shù))和前面3個內(nèi)容的數(shù)組,具有一定的參考價值,感興趣的可以了了解一下
    2024-02-02
  • Vue使用axios(Ajax)+ElementUI實現(xiàn)登錄實踐

    Vue使用axios(Ajax)+ElementUI實現(xiàn)登錄實踐

    本文介紹了如何使用Vue和ElementUI框架創(chuàng)建一個登錄頁面,并實現(xiàn)前后端交互,同時,還討論了跨域問題的解決方案以及ES6中的箭頭函數(shù)
    2026-03-03
  • 學(xué)習(xí)筆記之Vuex的用法總結(jié)(Vue狀態(tài)管理)

    學(xué)習(xí)筆記之Vuex的用法總結(jié)(Vue狀態(tài)管理)

    這篇文章主要介紹了學(xué)習(xí)筆記之Vuex的用法總結(jié)(Vue狀態(tài)管理),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 在vue.js中使用JSZip實現(xiàn)在前端解壓文件的方法

    在vue.js中使用JSZip實現(xiàn)在前端解壓文件的方法

    今天小編就為大家分享一篇在vue.js中使用JSZip實現(xiàn)在前端解壓文件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue+el-table點擊表頭實現(xiàn)改變其當(dāng)前樣式

    vue+el-table點擊表頭實現(xiàn)改變其當(dāng)前樣式

    這篇文章主要介紹了vue+el-table點擊表頭實現(xiàn)改變其當(dāng)前樣式問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Vue.js中的computed功能設(shè)計

    Vue.js中的computed功能設(shè)計

    computed作為計算屬性其作用是描述響應(yīng)式數(shù)據(jù)的復(fù)雜邏輯計算,當(dāng)所依賴的響應(yīng)式數(shù)據(jù)發(fā)生改變時計算屬性會重新計算,更新邏輯計算的結(jié)果,這篇文章主要介紹了Vue.js中的computed的功能設(shè)計,需要的朋友可以參考下
    2023-06-06
  • vue-org-tree實現(xiàn)導(dǎo)出組織架構(gòu)圖方式

    vue-org-tree實現(xiàn)導(dǎo)出組織架構(gòu)圖方式

    vue-org-tree是一個用于展示組織架構(gòu)圖的Vue組件,要實現(xiàn)組織架構(gòu)圖導(dǎo)出,可使用html2canvas庫將組織架構(gòu)圖轉(zhuǎn)換為圖片,并利用FileSaver.js庫保存生成的圖片,步驟包括安裝依賴和js實現(xiàn)邏輯,此為個人經(jīng)驗,僅供參考
    2026-05-05

最新評論

平阴县| 乌鲁木齐县| 绥芬河市| 平舆县| 美姑县| 封丘县| 霍林郭勒市| 交口县| 龙川县| 临颍县| 普兰店市| 宁波市| 临沭县| 莱西市| 长阳| 东源县| 肥乡县| 米泉市| 门源| 商南县| 都江堰市| 延长县| 青神县| 板桥市| 平湖市| 北碚区| 大名县| 全椒县| 石门县| 巨鹿县| 谢通门县| 大洼县| 合江县| 思茅市| 汶川县| 大姚县| 都昌县| 巴楚县| 华坪县| 凉山| 岳普湖县|