Vue动态组件和组件缓存
一、切换组件案例
比如我们现在想要实现了一个功能:
点击一个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动态组件和组件缓存相关推荐
- vue -- 动态加载组件 (tap 栏效果)
在 vue 中,实现 Tab 切换主要有三种方式:使用动态组件,使用 vue-router 路由,使用第三方插件. 因为这次完成的功能只是简单切换组件,再则觉得使用路由切换需要改变地址略微麻烦,所以使 ...
- Vue动态加载组件的四种方式
动态加载组件的四种方式: 1.使用import导入组件,可以获取到组件 var name = 'system'; var myComponent =() => import('../compon ...
- vue.js 动态加载 html,Vue加载组件、动态加载组件的几种方式
什么是组件: 组件是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.在较高层面上,组件是自定义的元素,Vue.js的编译器为它添加特殊功能.在有些情况下,组件也可以是原生HT ...
- Vue学习(动态组件、组件路由缓存keepalive)-学习笔记
文章目录 Vue学习(动态组件.组件路由缓存keepalive)-学习笔记 动态组件 组件路由缓存keepalive Vue学习(动态组件.组件路由缓存keepalive)-学习笔记 动态组件 < ...
- Vue动态组件、组件缓存、组件激活和非激活、组件插槽、组件name
一.动态组件 如何切换2个组件 互斥的显示或者隐藏呢 除了v-if 什么是动态组件? 多个组件使用同一个挂载点,并动态切换.这就是动态组件 完成一个注册功能页面, 2个按钮切换, 一个填写注册信息, ...
- vue 如何处理两个组件异步问题_Vue动态异步组件实现思路及其问题
前言:在vue 官方资料中,我们可以可以很学会如何通过vue构建"动态组件"以及"异步组件",然而,在官方资料中,并没有涉及到真正的"动态异步&quo ...
- Vue.js 动态组件 异步组件
在动态组件上使用 keep-alive 我们之前曾经在一个多标签的界面中使用 is 特性来切换不同的组件: <component v-bind:is="currentTabCompon ...
- vue ---- 动态组件
动态切换组件的显示隐藏 component 如何实现动态组件渲染 vue提供了一个内置的<component>,专门用来实现动态组件的渲染. 这个标签就相当于一个占位符,需要使用is属性指 ...
- Vue动态组件 异步组件 keep-alive
动态组件指的是动态切换组件的显示与隐藏 每次进行组件间的切换时,Vue都创建了一个新的组件实例,同时存在销毁过程 为了避免过程一每次进行销毁重建的问题,那么可以通过 keep-alive 来处理 &l ...
- vue 动态组件组件复用_真正的动态声明性组件
vue 动态组件组件复用 在这篇简短的文章中,我将重点介绍ADF动态声明性组件. 我的意思是一个众所周知的ADF标签af:declarativeComponent . 它可以用作将页面设计为页面片段和 ...
最新文章
- JVM自动内存管理:对象判定和回收算法
- ubuntu 21.04创建桌面快捷方式的方法
- h桥控制电机刹车_082 电机驱动桥集成式的结构,定速比10左右,松油门或轻踩刹车瞬间,出现齿轮撞击的情况,是什么原因导致的?应该采取什么措施?...
- wordpress for sae建站全过程
- Android 进程间通信
- 关于maven导入工程pom文件报错问题及解决
- 修改 tomcat 初始 ROOT 的方法
- php base64_decode 图片,php读取和保存base64编码图片
- Python 创建本地服务器环境生成二维码
- 易灵思FPGA--PLL资源
- Python OpenCV 保存mp4视频
- RK3328硬件解码+SPR5801边缘加速
- macd底背离的python_java尝试编写macd,试验顶背离底背离
- PAT_乙级_1013_筱筱
- 谁能引爆大数据?答案是“位置大数据”
- c#如何实现软件授权后才能使用?
- android工具类
- 会声会影2023最新中文旗舰版新功能介绍
- nbuoj 1103 计算等式
- Express框架简介