一、切换组件案例

比如我们现在想要实现了一个功能:

  • 点击一个tab-bar,切换不同的组件显示;

    这个案例我们可以通过两种不同的实现思路来实现:

  • 方式一:通过v-if来判断,显示不同的组件;

  • 方式二:动态组件的方式;
    动态组件是使用 component 组件,通过一个特殊的attribute is 来实现:

这个currentTab的值需要是什么内容呢?

  • 可以是通过component函数注册的组件;
  • 在一个组件对象的components对象中注册的组件;

二、动态组件的传值

如果是动态组件我们可以给它们传值和监听事件吗?

  • 也是一样的;
  • 只是我们需要将属性和监听事件放到component上来使用;

三、认识keep-alive

我们先对之前的案例中About组件进行改造:

  • 在其中增加了一个按钮,点击可以递增的功能;

比如我们将counter点到10,那么在切换到home再切换回来about时,状态是否可以保持呢?

  • 答案是否定的;
  • 这是因为默认情况下,我们在切换组件后,about组件会被销毁掉,再次回来时会重新创建组件;

但是,在开发中某些情况我们希望继续保持组件的状态,而不是销毁掉,这个时候我们就可以使用一个内置组件:keep-alive。

四、keep-alive属性

keep-alive有一些属性:

  • include - string | RegExp | Array。只有名称匹配的组件会被缓
    存;

  • exclude - string | RegExp | Array。任何名称匹配的组件都不
    会被缓存;

  • max - number | string。最多可以缓存多少组件实例,一旦达
    到这个数字,那么缓存组件中最近没有被访问的实例会被销毁;

include 和 exclude prop 允许组件有条件地缓存:

  • 二者都可以用逗号分隔字符串、正则表达式或一个数组来表示;
  • 匹配首先检查组件自身的 name 选项

五、缓存组件的生命周期

对于缓存的组件来说,再次进入时,我们是不会执行created或者mounted等生命周期函数的:

  • 但是有时候我们确实希望监听到何时重新进入到了组件,何时离开了组件;
  • 这个时候我们可以使用activated 和 deactivated 这两个生命周期钩子函数来监听;

Vue动态组件和组件缓存相关推荐

  1. vue -- 动态加载组件 (tap 栏效果)

    在 vue 中,实现 Tab 切换主要有三种方式:使用动态组件,使用 vue-router 路由,使用第三方插件. 因为这次完成的功能只是简单切换组件,再则觉得使用路由切换需要改变地址略微麻烦,所以使 ...

  2. Vue动态加载组件的四种方式

    动态加载组件的四种方式: 1.使用import导入组件,可以获取到组件 var name = 'system'; var myComponent =() => import('../compon ...

  3. vue.js 动态加载 html,Vue加载组件、动态加载组件的几种方式

    什么是组件: 组件是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.在较高层面上,组件是自定义的元素,Vue.js的编译器为它添加特殊功能.在有些情况下,组件也可以是原生HT ...

  4. Vue学习(动态组件、组件路由缓存keepalive)-学习笔记

    文章目录 Vue学习(动态组件.组件路由缓存keepalive)-学习笔记 动态组件 组件路由缓存keepalive Vue学习(动态组件.组件路由缓存keepalive)-学习笔记 动态组件 < ...

  5. Vue动态组件、组件缓存、组件激活和非激活、组件插槽、组件name

    一.动态组件 如何切换2个组件 互斥的显示或者隐藏呢 除了v-if 什么是动态组件? 多个组件使用同一个挂载点,并动态切换.这就是动态组件 完成一个注册功能页面, 2个按钮切换, 一个填写注册信息, ...

  6. vue 如何处理两个组件异步问题_Vue动态异步组件实现思路及其问题

    前言:在vue 官方资料中,我们可以可以很学会如何通过vue构建"动态组件"以及"异步组件",然而,在官方资料中,并没有涉及到真正的"动态异步&quo ...

  7. Vue.js 动态组件 异步组件

    在动态组件上使用 keep-alive 我们之前曾经在一个多标签的界面中使用 is 特性来切换不同的组件: <component v-bind:is="currentTabCompon ...

  8. vue ---- 动态组件

    动态切换组件的显示隐藏 component 如何实现动态组件渲染 vue提供了一个内置的<component>,专门用来实现动态组件的渲染. 这个标签就相当于一个占位符,需要使用is属性指 ...

  9. Vue动态组件 异步组件 keep-alive

    动态组件指的是动态切换组件的显示与隐藏 每次进行组件间的切换时,Vue都创建了一个新的组件实例,同时存在销毁过程 为了避免过程一每次进行销毁重建的问题,那么可以通过 keep-alive 来处理 &l ...

  10. vue 动态组件组件复用_真正的动态声明性组件

    vue 动态组件组件复用 在这篇简短的文章中,我将重点介绍ADF动态声明性组件. 我的意思是一个众所周知的ADF标签af:declarativeComponent . 它可以用作将页面设计为页面片段和 ...

最新文章

  1. JVM自动内存管理:对象判定和回收算法
  2. ubuntu 21.04创建桌面快捷方式的方法
  3. h桥控制电机刹车_082 电机驱动桥集成式的结构,定速比10左右,松油门或轻踩刹车瞬间,出现齿轮撞击的情况,是什么原因导致的?应该采取什么措施?...
  4. wordpress for sae建站全过程
  5. Android 进程间通信
  6. 关于maven导入工程pom文件报错问题及解决
  7. 修改 tomcat 初始 ROOT 的方法
  8. php base64_decode 图片,php读取和保存base64编码图片
  9. Python 创建本地服务器环境生成二维码
  10. 易灵思FPGA--PLL资源
  11. Python OpenCV 保存mp4视频
  12. RK3328硬件解码+SPR5801边缘加速
  13. macd底背离的python_java尝试编写macd,试验顶背离底背离
  14. PAT_乙级_1013_筱筱
  15. 谁能引爆大数据?答案是“位置大数据”
  16. c#如何实现软件授权后才能使用?
  17. android工具类
  18. 会声会影2023最新中文旗舰版新功能介绍
  19. nbuoj 1103 计算等式
  20. Express框架简介

热门文章

  1. Centos7中安装python3.7、pip3以及pipenv(亲测有效)
  2. python形参中的:*args和**kwargs区别
  3. 深度学习案例之基于 CNN 的 MNIST 手写数字识别
  4. 托福试卷真题_干货解答考生疑惑,自考真题考过了还会在出吗?
  5. python numpy教程_Python中的Numpy入门教程
  6. Logstash入门简介
  7. Django简介以及安装
  8. 【深度学习】TensorFlow之卷积神经网络
  9. 驱动框架6——linux内核的gpiolib学习
  10. 【nodejs】安装browser-sync 遇到错误提示