vue-cli keep-alive用法以及activated,deactivated

news/2024/7/6 0:15:25 标签: javascript, 前端

 keep-alive用法

<keep-alive>是Vue的内置组件,能在组件切换过程中将状态保留在内存中,防止重复渲染DOM。

  • include: 字符串或正则表达式。只有匹配的组件会被缓存。
  • exclude: 字符串或正则表达式。任何匹配的组件都不会被缓存。
import Vue from 'vue'
import Router from 'vue-router'
import Home from '@/components/home/home'
import Header from '@/components/home/header'
import Citylist from '@/components/city/city-list'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: Home,
      meta: {
        keepAlive: true // 需要被缓存
      }
    },
    {
      path: '/Header',
      name: 'Header',
      component: Header,
      meta: {
        keepAlive: true // 需要被缓存
      }
    },
    {
        path:'/citylist',
        name:'citylist',
        component:Citylist,
        meta: {
        keepAlive: false // 不需要被缓存
      }
    }
  ]
})

这样就需要在app.vue中这样写

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

<script>
export default {
  name: 'App'
}
</script>

<style>
</style>

这样就实现了有效的控制是否缓存。

activated,deactivated

注意一点:activated,deactivated这两个生命周期函数一定是要在使用了keep-alive组件后才会有的,否则则不存在

当引入keep-alive的时候,页面第一次进入,钩子的触发顺序created-> mounted-> activated,退出时触发deactivated。当再次进入(前进或者后退)时,只触发activated。

事件挂载的方法等,只执行一次的放在 mounted 中;组件每次进去执行的方法放在 activated 中, activated 中的不管是否需要缓存多会执行。

 

转载于:https://www.cnblogs.com/wanan-01/p/10132850.html


http://www.niftyadmin.cn/n/1791011.html

相关文章

小型电子声光礼花器电子烟花爆竹电路设计

节日和庆典时燃放礼花&#xff0c;其绚丽缤纷的图案&#xff0c;热烈的爆炸声、欢乐的气氛&#xff0c;能给人们留下美好的印象&#xff0c;但有一定的烟尘污染和爆炸危险隐患。本电路可以模拟礼花燃放装置&#xff0c;达到声型兼备的效果&#xff0c;给人们在安全、环保的环境…

spring boot 配置 JPA

application.properties的配置 spring.datasource.platformpostgres spring.datasource.urljdbc:postgresql://localhost:5432/to_database spring.datasource.usernamepostgres spring.datasource.password123456789 spring.jpa.properties.hibernate.dialect org.hibernate.…

字节顺序

字节顺序 #include <stdio.h>typedef int* int_ptr; typedef unsigned char* byte_ptr;void show_bytes( byte_ptr start, int len ){int i;for( i 0; i < len; i ){printf( " %4.2x", start[i] );}printf( "\n" );}void show_int( int x ){show…

Java原型模式--拷贝

package com.xianyu.prototype;import java.util.Date;/*** author xianyu* version 1.0* date 2020/3/15 21:36* 复制视频源文件* 1. 实现一个接口* 2. 重写一个方法*/ public class Video implements Cloneable{ // 实现一个接口private String name;private Date createTim…

GPA低于2.0被开除

GPA低于2.0被开除&#xff08; Q 575121832&#xff09; GPA太低会被开除吗&#xff1f; GPA是衡量学生学术水平的一个重要指标。一般而言&#xff0c;如果连续两学期&#xff0c;本科生的GPA达不到2.0、研究生的GPA达不到3.0&#xff0c;都有可能面临被学校劝退或开除的情况。…

5294 挖地雷

5294 挖地雷 时间限制: 1 s 空间限制: 1000 KB题目等级 : 黄金 Gold题目描述 Description在一个地图上有N个地窖&#xff08;N<20&#xff09;&#xff0c;每个地窖中埋有一定数量的地雷。同时&#xff0c;给出地窖之间的连接路径。当地窖及其连接的数据给出之后&#xff0c…

sysbench的框架实现介绍

sysbench是一个非常经典的综合性能测试工具&#xff0c;它支持CPU&#xff0c;IO&#xff0c;内存&#xff0c;尤其是数据库的性能测试。那它是怎么做到通用性的呢&#xff0c;总结一句话是大量运用了重载的方法。 sysbench总体架构 sysbench是一个总体框架&#xff0c;它用来操…

Appium Android Bootstrap源代码分析之简单介绍

在上一个系列中我们分析了UiAutomator的核心源代码&#xff0c;对UiAutomator是怎么执行的原理有了根本的了解。今天我们会開始另外一个在安卓平台上基于UiAutomator的新起之秀--Appium的源代码分析之旅。本文在真个系列中会扮演一个简单介绍的角色&#xff0c;不会分析不论什么…