vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > keep-alive缓存某一指定路由

keep-alive缓存某一指定路由实现方式

作者:Jedi Hongbin

使用路由元信息配合keep-alive实现条件缓存,通过两个router-view和meta变量判断是否缓存特定路由,注意keep-alive优先使用组件的name属性而非路由name,避免常见错误

keep-alive缓存某一指定路由

路由的元信息,可以理解成保存某一路由的特定辨识信息,当辨识信息对上了某些判断,则执行某些操作

正常显示的路由不使用keep-alive缓存

但是某一特定需要使用keep-alive保存操作记录,就可以使用两个router-view,通过判断当前路由的meta信息中的变量的值来决定时候使用keep-alive

		<transition>
			<router-view v-if="!$route.meta.isKeep"></router-view>
		</transition>

		<transition>
			<keep-alive>
				<router-view v-if="$route.meta.isKeep"></router-view>
			</keep-alive>
		</transition>
		{
			path: "/home/goods",
			component: goods,
			meta: {
				isKeep: true//需要缓存的路由
			}
		}, {
			path: "/home/goodsinfo/:id",
			component: goodsInfo
		}, 

keep-alive本身还有辨识路由的方式


还可以用keep-alive提供的三个属性来实现

让keep-alive根据条件来判断是否缓存某一路由,不过keep-alive判断的首先是vue实例的name属性,这里要注意不是路由的name属性,这时一个坑🕳

		<transition>
			<keep-alive exclude="goods">
				<router-view></router-view>
			</keep-alive>
		</transition>
	export default {
	name:"goods",
 	 data() {
   		 }
 	}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

阅读全文