点火电极组件怎么在vue.js中使用

  介绍

这期内容当中小编将会给大家带来有关点火电极组件怎么在vue.js中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

维生是vue.js的一个内置组件。你们;keep-alive>包裹动态组件时,会缓存不活动的组件实例,而不是销毁它们。它自身不会渲染一个DOM元素,也不会出现在父组件链中。当组件在& lt; keep-alive>内被切换,它的激活和不激活这两个生命周期钩子函数将会被对应执行。它提供了包括与排除两个属性,允许组件有条件地进行缓存。

举个栗子

& lt; keep-alive>   & lt;才能router-view  v=皉oute.meta.keepAlive"美元;祝辞& lt;/router-view>   ,& lt;/keep-alive>   ,& lt; router-view  v=? route.meta.keepAlive"美元;祝辞& lt;/router-view>

点火电极组件怎么在vue。js中使用

在点击按钮时候,两个输入会发生切换,但是这时候这两个输入框的状态会被缓存起来,输入标签中的内容不会因为组件的切换而消失。

*包括-字符串或正则表达式。只有匹配的组件会被缓存。
*排除-字符串或正则表达式。任何匹配的组件都不会被缓存。

& lt; keep-alive 包括=癮"比;   ,& lt; component> & lt;/component>   & lt;/keep-alive>

只缓存组件别民名字为的组件

& lt; keep-alive 排除=癮"比;   ,& lt; component> & lt;/component>   & lt;/keep-alive>

除了名称为的组件,其他都缓存下来

<强>生命周期钩子

生命钩子维生提供了两个生命钩子,分别与释放是激活。

因为保活会将组件保存在内存中,并不会销毁以及重新创建,所以不会重新调用组件的创建等方法,需要用激活与这两个生命钩子来得知当前组件是否处于活动状态。

深入点火电极组件实现

点火电极组件怎么在vue.js中使用“>,<br/> </p> <p>查看vue -点火电极组件源代码可以得到以下信息</p> <p>创建钩子会创建一个缓存对象,用来作为缓存容器,保存vnode节点。</p> <pre类=道具:,{   ,包括:patternTypes,   ,排除:patternTypes,   马克斯:大敌;(字符串,,数量)   },   created  (), {   ,//创建缓存对象=,,this.cache  Object.create(空)   ,//创建一个关键别名数组(组件名称)=,this.keys  []   },

摧毁钩子则在组件被销毁的时候清除缓存缓存中的所有组件实例。

destroyed  (), {   ,/*遍历销毁所有缓存的组件实例*/,for  (const  key  this.cache拷贝),{   pruneCacheEntry才能(this.cache,钥匙,,this.keys)   ,}   },

:::演示

render  (), {   ,/*获取插槽,*/,const  slot =, slots.default美元   ,/*根据插槽获取第一个组件组件,*/,const  vnode: VNode =, getFirstComponentChild(槽)   ,const  componentOptions: ? VNodeComponentOptions =, vnode ,, vnode.componentOptions   ,if  (componentOptions), {   ,//获取组件的名称(是否设置了组件名称名,没有则返回组件标签名称)   ,const 名称:? string =, getComponentName (componentOptions)   ,//解构对象赋值常量   {,const ,包括exclude },=,   ,if (/*,名字不在是中或者在exlude中则直接返回vnode  *///才能,not 包括在内   ,,(include ,,, (! name  | |, !匹配(包括,名称))),| |//,才能排除在外   ,,(exclude ,,, name ,,,比赛(排除,,名字))   ,){   return 才能vnode   ,}   {,const ,缓存,keys },=,   ,const 关键:? string =, vnode.key ==零//才能,same  constructor  may  get  registered  as  different  local 组件//才能,so  cid  alone  is  not  enough  (# 3269)   ,,? componentOptions.Ctor.cid  +, (componentOptions.tag  ?,“:: $ {componentOptions.tag}”,:, & # 39; & # 39;)   :才能vnode.key   ,if (缓存(例子)),{,//判断当前是否有缓存,有则取缓存的实例,无则进行缓存   vnode.componentInstance 才能;缓存(例子).componentInstance=,//才能,make  current  key 新鲜   删除才能(键,键)   keys.push才能(关键)   ,}else  {   缓存(例子),才能=vnode   keys.push才能(关键)//才能,判断是否设置了最大缓存实例数量,超过则删除最老的数据,   if 才能;(this.max ,,, keys.length 祝辞,方法(this.max)), {   pruneCacheEntry才能(缓存,键[0],钥匙,this._vnode)   ,,}   ,}   ,//给vnode打上缓存标记   vnode.data.keepAlive =, true   ,}   ,return  vnode  | |, (slot ,,,槽[0])   }//,销毁实例   function  pruneCacheEntry  (   缓存:大敌;VNodeCache,   ,关键:字符串,   ,密钥:Array

点火电极组件怎么在vue.js中使用