详解关于Vue2.0路由开启keep-alive时需要注意的地方

Vue2.0 做应用必有的需求就是页面数据需要做缓存,不用每次进入页面都要把数据重新请求一遍,每次页面切换都有段等待数据相应时间,这个用户体验可想有多么蛋疼,所以页面缓存是必要的,啥时候需要更新页面数据呢?可以监听状态变化,或者是手动下拉刷新重新请求数据,酱紫,我想用户体验会做的更好。

keep-alive的作用以及好处

在做电商有关的项目中,当我们第一次进入列表页需要请求一下数据,当我从列表页进入详情页,详情页不缓存也需要请求下数据,然后返回列表页,这时候我们使用keep-alive来缓存组件,防止二次渲染,这样会大大的节省性能。

废话不多说直接上码,一般是在 src/App.vue 设置开启 keep-alive 实现页面数据缓存:

?


1

2

3

4

5

<template>

 <keep-alive>

  <router-view></router-view>

 </keep-alive>

</template>

列举几个常用的 hook 方法,如下:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

export default {

 data() {

  return {

  

  }

 },

 created: function() {

  console.log("the hook of created is done!");

 },

 mounted: function() {

  console.log("the hook of mounted is done!");

 },

 activated: function() {

  console.log("the hook of activated is done!");

 },

 deactivated: function() {

  console.log("the hook of deactivated is done!");

 }

}

首次进来 hook 的触发顺序 created-> mounted-> activated,退出时触发 deactivated:

// 控制台打印结果
the hook of created is done!
the hook of mounted is done!
the hook of activated is done!
the hook of deactivated is done!

二次进来 hook 只触发 activated,退出时触发 deactivated:

// 控制台打印结果
the hook of activated is done!
the hook of deactivated is done!

所以这就是为什么有些人开启 keep-alive 之后,created 和 mounted 注册的 pageInt 方法不触发的原因了,因为 keep-alive 把它们屏蔽了,也就是把数据缓存起来,所以不再请求。

如果你的某些页面一定要实时请求,你可以直接在 activated 这个 hook 做 pageInt,就不要在 created 和 mounted 上面注册 pageInt 方法了。

还有你可以选择性 pageInt,比如监听状态变化,包括但不限于监听路由的变化,某参数的变化,某时间节点的变化等等。

中科院新科海学校软件测试视频    下载地址:百度网盘下载
性能测试与LoadRunner基础培训 视频教程 教学视频 百度网盘下载(价值1580元)     下载地址:百度网盘下载
【全6套视频】软件测试系列教程    下载地址:百度网盘下载
测试基础篇/软件测试教程入门    下载地址:百度网盘下载
实下最流行的测试框架Selenium视频教程 Web应用程序测试的工具学习视频教程    下载地址:百度网盘下载
炼数成金 快速上手Jmeter性能测试工具 软件压力测试学习 视频教程 教学视频    下载地址:百度网盘下载
中游学院Swift语言视频教程swift培训视频 101课    下载地址:百度网盘下载
IOS开发进阶视频教程 63课    下载地址:百度网盘下载
IOS SWIFT网络编程CFNetwork视频教程 9课 附源码    下载地址:百度网盘下载
IOS开发之Swift开发语言快速入门坐标系计算机语言学习法视频教程 共30课 附源码    下载地址:百度网盘下载
2017IOS性能优化工具Instruments使用视频教程 4课 附讲义    下载地址:百度网盘下载
IOS基础到就业培训班 40课    下载地址:百度网盘下载
麦子学院 IOS工程师培训视频教程    下载地址:百度网盘下载
IOS动画编程UIViewAnimation开发视频教程 10课 附思维导图与源码    下载地址:百度网盘下载
IOS地理位置及定位系统MapKit开发视频教程 15课 附源码    下载地址:百度网盘下载
IOS多线程及异步任务处理NSThread与TaskQueue视频教程 12课 附课件与源码    下载地址:百度网盘下载
IOS多媒体影音CoreAudio编程视频教程 14课 附源码课件    下载地址:百度网盘下载
IOS8 App开发快速入门视频教程与案例分享 20课 附讲义    下载地址:百度网盘下载
IOS教程UIKit包表格集合与控制器使用视频教程 27课 附源码    下载地址:百度网盘下载
IOS9教程完整高清版 包含源码课件 练习题    下载地址:百度网盘下载

原文地址:https://www.cnblogs.com/yedda/p/9898529.html

时间: 2024-10-09 06:02:55

详解关于Vue2.0路由开启keep-alive时需要注意的地方的相关文章

iOS 后台持续定位详解(支持ISO9.0以上)

iOS 后台持续定位详解(支持ISO9.0以上) #import <CoreLocation/CoreLocation.h>并实现CLLocationManagerDelegate 代理,.h文件完整代码如下: [objc] view plain copy #import <UIKit/UIKit.h> #import <CoreLocation/CoreLocation.h> @interface ViewController : UIViewController&l

vue2.0路由写法和传参

前置知识请戳这里 vue-routerCDN地址:https://unpkg.com/[email protected]/dist/vue-router.js vue-router下载地址:https://github.com/vuejs/vue-router/tree/dev/dist vue2.0路由基本写法 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title&

详解cocos2dx 3.0的release版本在android平台的签名过程

当您的游戏准备发布前,需要编译成为release版本,命令中需要增加 -m release,编译命令如下: cocos compile -p android -m release 在编译结束后,生成xxx_release_unsigned.apk,此时会提示进行签名,需要输入.keystore的路径. .keystore的生成方法: 使用keytool,命令如下: keytool -genkey -v -keystore my-release-key.keystore -alias alias_

详解VMware 9.0.1安装MAC OS X 10.8(历时近3日感想篇)

突然心血来潮,想用VMware 9.0.1安装MAC OS X,但网上的文章多多少少总有点缺陷,不能适合每一个人,在综合了近30篇安装MAC OS X的文章后,我决定发布一篇比较大众化,比较详尽的MAC OS X安装过程. 一.准备工作: (1)虚拟机系统:vmware workstation 9,(或vmware player),请自行在网上下载. (2)vmware的MAC补丁包.如果你使用的是vmware10,请下载补丁包V1.20,如果是vmware8或9,请下载补丁包V1.10. (3

Vue2.0的变化(2)———vue2.0动画的变化、vue-2.0路由的变化

之前讲解的都是vue1.0的使用,现在我们开始介绍vue2.0,这里的介绍是在vue1.0的基础上进行介绍的,主要介绍的是同vue1.0版本相比2.0的变化 vue2.0动画的变化:现在变成: <transition> 运动东西(元素,属性,路由.....); </transition> class的定义: .fade-enter{} //初始状态 .fade-enter-active{} //变化成什么样 --当元素出来(显示) .fade-leave{} //可不写 .fade

vue2.0路由嵌套

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>vue2.0路由嵌套2</title> <script type="text/javascript" src="js/vue2.0.js" ></script> <script type="text/javascrip

vue2.0路由

现在用vue-cli搭建的环境里面vue-router是下载好的 vue2.0路由方式和以前也有些不同 没了了map和start方法 目录结构如上图 这里有三个文件,app.vue显示,main.js控制路由,goods.vue为跳转页面 app.vue template> <div id="app"> <v-header></v-header> <div class="tab"> <div class=&

vue2.0 路由学习笔记

昨天温故了一下vue2.0的路由 做个笔记简单记录一下! 1.首相和vue1.0一样 要使用vuejs的路由功能需要先引入vue-router.js 2.然后修改原有a标签处代码 这里以一个ul li a 为例 <ul> <li><a href="#"></a></li> <li><a href="#"></a></li> </ul> 使用 rou

vue2.0路由-路由嵌套

vue一个重要的方面就是路由,下面是自己写的一个路由的例子: 1.引入依赖库就不必再说 2.创建组件 两种写法 第一种:间接 <template id="home"> <div> <h1>Home</h1> <p>{{msg}}</p> </div> </template> var About = Vue.extend({ template: '#about' }); 第二种:直接 var