vue使用keepalive缓存上级页面】的更多相关文章

本篇文章主要介绍了vue 的keep-alive缓存功能的实现,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. Vue 实现组件信息的缓存 当我们在开发vue的项目过程中,避免不了在路由切换到其他的component再返回后该组件数据会重新加载,处理这种情况我们就需要用到keep-alive来缓存vue的组件信息,使其不再重新加载. 一.在app.vue里 keep-alive> <router-view></router-vi…
在vue中,有时候我们只想缓存页面中的一些组件或页面,这个时候怎么办呢,我们就需要用判断来加载keep-alive. 例如: // router.js { path: "/driving_licence", component: () => DrivingLicence, meta: { isShowFooter: true, title: "驾照查分" } }, { name: "ticket", path: "/ticket&…
路由中: 页面中: 需要缓存的组件中: 因为是keep-alive  所以在初始化页面的时候 会走一次生命周期 当二次进入的时候就已经是缓存状态了 不会在走生命周期 于是它就有了自己的周期函数分别是 1.组件激活时调用--activated    2.组件销毁时调用--deactivated    (这两个钩子在服务器渲染期间不会被调用!!!!!!!!!!!) 以上已经完成了需求 缓存数据和位置 以下是keep-alive的属性一些使用 还可以直接用于组件上 官网中的实例就是用于组件的 具体看例…
需求: 产品经理在列表页(几千个数据,n个page)点击某一项进去到详情页后,再返回到列表页发现页面回到了第一页,找不到之前的查看的是哪一条了,为了方便咋公司产品经理,返回列表页时需要记住之前的page页 解决思路: 在列表页点击某一条进入详情页的时候,触发当前页面的keep-alive缓存页面 解决步骤: 1. 设置路由 需要缓存的路由设置 keepAlive : true, 不需要缓存的路由设置 keepAlive: false router index.js [ { path: '/dm'…
实践场景需求 产品列表中,滚动到一定位置的时候,点击查看产品信息,后退之后,需要回到原先的滚动位置,这是常见的需求 所有页面均在router-view中,暂时使用了keep-alive来缓存所有页面,所以进入不同分类的产品列表,和不同的产品详情页面,需要更新数据 首先注意: 本次实践测试环境为pc端的webkit内核浏览器,手机暂时不测试 使用$router.back(-1) 和浏览器后退按钮效果一样 必须使用keep-alive缓存路由页面才能记住上次的位置,否则使用浏览器后退或$router…
prop: include: 字符串或正则表达式.只有匹配的组件会被缓存. exclude: 字符串或正则表达式.任何匹配的组件都不会被缓存. 在2.1.0版本Vue中 常见用法: // 组件 export default { name: 'test-keep-alive', data () { return { includedComponents: "test-keep-alive" } } } <keep-alive include="test-keep-aliv…
什么是keep-alive 有时候我们不希望组件被重新渲染影响使用体验: 或者处于性能考虑,避免多次重复渲染降低性能.而是希望组件可以缓存下来,维持当前的状态.这时候就需要用到keep-alive组件. 官网释义: <keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们.和 <transition> 相似,<keep-alive> 是一个抽象组件:它自身不会渲染一个 DOM 元素,也不会出现在父组件链中. 当组件在 <keep-alive…
由于项目需求从a页面跳转到b页面,返回a页面,a页面数据不能被刷新掉,方法很多列举12 方法1 a页面通过学期按钮切换学期,该学期里more进入b页面,返回a页面,返回回到对应a页面进入的高亮按钮设置想要缓存的页面 <!-- 缓存所有的页面 --> <keep-alive> <router-view v-if="$route.meta.keepAlive"></router-view> </keep-alive> <ro…
mode:hash模式下: HTML部分: <template> <div id="app"> <keep-alive> <!--使用keep-alive会将页面缓存--> <router-view v-if="$route.meta.keepAlive"></router-view> </keep-alive> <router-view v-if="!$route.…
  keep-alive缓存 在vue中默认router-link进入页面组件都是不缓存的.对于数据不会更新的页面.可以使用keep-alive来缓存以提高性能. 在项目src/router/index.js中.对于需要缓存的路由加meta中加上keepAlive: true export default new Router({ routes: [ {path: '/', redirect: '/Home', meta: {keepAlive: true,} }, ] }) 在app.vue中…