vue2.0 keep-alive最佳实践

  转自:https://segmentfault.com/a/1190000008123035

1.基本用法

vue2.0提供了一个keep-alive组件用来缓存组件,避免多次加载相应的组件,减少性能消耗

<keep-alive>
<component>
<!-- 组件将被缓存 -->
</component>
</keep-alive>

有时候 可能需要缓存整个站点的所有页面,而页面一般一进去都要触发请求的
在使用keep-alive的情况下

<keep-alive><router-view></router-view></keep-alive>

将首次触发请求写在created钩子函数中,就能实现缓存,
比如列表页,去了详情页 回来,还是在原来的页面

2.缓存部分页面或者组件

(1)使用router. meta属性

// 这是目前用的比较多的方式

<keep-alive>
<router-view v-if="!$route.meta.keepAlive"></router-view>
</keep-alive>
<router-view v-if="$route.meta.keepAlive"></router-view>

router设置

...
routes: [
{ path: ‘/‘, redirect: ‘/index‘, component: Index, meta: { keepAlive: true }},
{
path: ‘/common‘,
component: TestParent,
children: [
{ path: ‘/test2‘, component: Test2, meta: { keepAlive: true } }
]
}
....

// 表示index和test2都使用keep-alive
(2).使用新增属性inlcude/exclude

2.1.0后提供了include/exclude两个属性 可以针对性缓存相应的组件

<!-- comma-delimited string -->
<keep-alive include="a,b">
<component :is="view"></component>
</keep-alive>
<!-- regex (use v-bind) -->
<keep-alive :include="/a|b/">
<component :is="view"></component>
</keep-alive>

//其中a,b是组件的name
注意:这种方法都是预先知道组件的名称的

(3)动态判断

<keep-alive :include="includedComponents">
<router-view></router-view>
</keep-alive>
includedComponents动态设置即可
时间: 2024-12-23 17:34:47

vue2.0 keep-alive最佳实践的相关文章

Vuex2.0+Vue2.0构建备忘录应用实践

一.介绍Vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化,适合于构建中大型单页应用. 1.什么是状态管理模式? 看个简单的例子: <!DOCTYPE html><html><head>   <meta charset="utf-8">   <meta name="viewport" content=

Zabbix3.0安装部署最佳实践

Zabbix介绍 1.1zabbix 简介 Zabbix 是一个高度集成的网络监控解决方案,可以提供企业级的开源分布式监控解决方案,由一个国外的团队持续维护更新,软件可以自由下载使用,运作团队靠提供收费的技术支持赢利 zabbix是一个基于Web界面的,提供分布式系统监控以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营,并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题 zabbix主要由2部分构成zabbix server和zabb

学习笔记TF061:分布式TensorFlow,分布式原理、最佳实践

分布式TensorFlow由高性能gRPC库底层技术支持.Martin Abadi.Ashish Agarwal.Paul Barham论文<TensorFlow:Large-Scale Machine Learning on Heterogeneous Distributed Systems>. 分布式原理.分布式集群 由多个服务器进程.客户端进程组成.部署方式,单机多卡.分布式(多机多卡).多机多卡TensorFlow分布式. 单机多卡,单台服务器多块GPU.训练过程:在单机单GPU训练,

Vue2.0 + Element-UI + WebAPI实践:简易个人记账系统

最近正在学习Vue2.0相关知识,正好近期饿了么桌面端组件Element-UI发布,便动手做了一款简易个人记账系统,以达到实践及巩固目的. 1.开发环境 Win10 + VS2015 + Sqlserver2008R2 + WebAPI + Dapper + Vue2.0 + Element-UI 2.项目解决方案概览 简单介绍下,Account是WebAPI项目,承载前端请求:Account.BLL.Account.DAL.Account.Entity不废话:Account.Common是对D

Android 6.0 运行时权限管理最佳实践

Android 6.0 运行时权限管理最佳实践 版权声明:转载必须注明本文转自严振杰的博客: http://blog.yanzhenjie.com 这是一篇迟来的博客,Android M已经发布一年多了(6.0的变化),在Android M中权限系统被重新设计,发生了颠覆性的变化,很多人把握不好这个变化,一是对这个权限策略和套路还没有摸透,二是没有一个很好的实践来支撑,在我的技术开发群里很多人问我关于权限的问题,往往我都没有直接回答,因为这个问题不是一两句说的清楚的,这几点是今天我写这篇博客的原

Doodoo.js 发布 1.1.0,Koa.js+ Nuxt.js 最佳实践

doodoo.js发布1.1.0 -- 中文最佳实践Node.js Web快速开发框架,支持Koa.js, Express.js中间件.包含多项功能改进,及Bug修复.更新内容: 1.[新增]新增支持.js7格式文件2.[新增]新增支持redis密码设置3.[更新]更新默认不连接mysql4.[新增]新增支持mongodb数据库5.[新增]新增支持设置api路由前缀6.[移除]移除默认static静态服务器7.[新增]新增static插件8.[新增]新增自定义plugin9.[新增]新增webh

团队排表系统V3.0最佳实践及使用说明

团队排表系统V3.0最佳实践 1.从我这里获取团队代号, 例如"tuanzhangshishabi" 2.打开网页 填写以下信息. 请注意: 最好所有的打工和老板都填上真实的QQ, 有利于发号和管理. 第一个填写我给的团队代码的人将会是管理员 3.进入主页,选择左侧老板管理,添加老板.  团员管理 添加团员.  记住所有的qq 帐号 密码 区服 都尽量填写真实, 操作方式: 双击编辑, 右键删除, 加号添加, 左键选中可以批量删除, 批量导入(还未实现). 可以按区服,职业查询. 团员

vue2.0实践的一些细节

最近用vue2.0做了个活动.做完了回头发现,好像并没有太多的技术难点,而自己好像又做了比较久...只能说效率有待提升啊...简单总结了一些比较细节的点. 1.对于一些已知肯定会有数据的模块,先用一个有高度的元素占位,不然当数据加载好渲染的时候会出现跳动的感觉.可以这样写: 1 2 3 4 5 <div class="yhq_inner">  //占位元素 <template v-if="true">  //加template则页面加载时就不

vue2.0实践 —— Node + vue 实现移动官网

简介 使用 Node + vue 对公司的官网进行了一个简单的移动端的实现. 源码 https://github.com/wx1993/node-vue-fabaocn 效果 组件 轮播图(使用 vue-awesome-swiper 插件) 新闻列表 新闻详情 职位列表 联系我们页面(使用百度地图api) 技术 Express.Vue.Vue-Router.Vue-Resource.Webpack Vue vue 的组件化思想和 React 很像,一个 vue 组件将 html.css 和 js