新指令vmemo,提高性能的又一利器
Vue3为我们提供了几项开箱即用的重大性能改进,但也引入了一些额外的手动功能,可以帮助提高我们的应用性能。
在这节课中,我们介绍一下,在Vue3。2中引入新指令vmemo。引入这个指令的目的是帮助我们提高中型大型Vue应用程序的性能,小项目大家根据需要自行决定。vmemo是做什么的?
官网对vmemo定义是这样的:
缓存一个模板的子树。在元素和组件上都可以使用。为了实现缓存,该指令需要传入一个固定长度的依赖值数组进行比较。如果数组里的每个值都与最后一次的渲染相同,那么整个子树的更新将被跳过。举例来说:
看起来有点绕,但实际上,很好理解。vmemo所做的与我们现有的计算属性一样,只不过vmemo的对象是DOM。
这个新指令将缓存它所控制的DOM部分,如果一个特定的值发生变化,只需运行更新并重新渲染。这些值是由我们自己手动设置。事例template。。therestofthecomponentsvgtitle{{MyValue}}title。。。svgvuecustomelement:valuemyValuevuecustomelementtemplate
对上面解释一下:vmemo通常是作为组件的一部分来使用的,它只是影响组件dom的一个子集。
接着,我们将vmemo分配给了一个特定的DIV和它的所有子元素。当调用vmemo时,需要传递一个值数组,以控制子树的渲染。
数组接受一个或多个值vmemo〔valueOne,valueTwo〕,也接受像vmemomyValuetrue这样的表达。
另外:用一个空数组调用vmemo相当于使用vonce,只会渲染该部分组件一次。svgtitle{{MyValue}}title。。。svgvuecustomelement:valuemyValuevuecustomelement
同在看下子树的内容。在我们的例子中,使用了一个svg元素和一个自定义Vue组件vuecustomelement。这样做是为了说明一件事:vmemo包含任何元素。错误的使用方式pStaticcontent,novuevalueshere
在上面的例子中,包含在vmemo中的子树不需要被缓存,因为它是静态的,不会改变(它不包括任何Vue变量)。Vue3会对静态进行一个提升,以便提高性能。
在一个静态的HTML上添加vmemo是没啥作用,不管这个HTML有多复杂。管理更新
在有些情况下,vmemo不仅可以用来提高性能,还可以通过控制组件的更新周期,实际改善UX(用户体验)。p{{field1}}p{{field2}}p{{field3}}p{{field4}}
在上面的例子中,改变一个单独的字段,例如field1,并不会导致重新渲染。新的字段将在所有字段都被更新后显示。
最近遇到一个情况,一个子组件会对一个大的JSON数据集进行更新和响应。在这种情况下,使用vmemo真的很有帮助,当所有的变化都完成后,就可以触发更新。与vfor结合使用
使用vmemo的一个最常见的用例是在处理使用vfor渲染的非常大的列表时。pID:{{item。id}}selected:{{item。idselected}}p。。。morechildnodes
如果不在上面的代码中使用vmemo,selected变量的每一次改变都会导致列表的完全重新渲染。新指令提供的缓存,允许只更新表达式item。idselected发生变化的行,也就是当某个项被选中或者取消时。
如果我们考虑一个有1000条数据的列表。使用上述代码的vmemo,可以为每一个变化节省998个条重新渲染。无意中停止了子组件触发的更新
我们知道vmemo会停止子树渲染更新,但需要注意的是,使用这个指令实际上会停止任何可能被更新触发的代码的执行,如watch函数等。1000〕myComponent。。。。。。。
夜读丨生如夏花,醉美流年。文字丨幽兰公主主播丨花晨夏天的风吹过,桃红杏黄,瓜熟豆满,一派丰收景象,最喜小荷才露尖尖角,榴花盛放花欲燃。这样的季节,风里裹着花香,雨中透着浪漫,心中藏着……
盘点徕卡原厂相机配件,精美有人说:比拍照片更快乐的事情,是给相机拍照片,比买相机更快乐的事情,是给相机买配件!小编为各位影友安利几款实用又好看的配件,出门摄影绝对用得到。防护类徕卡An……
2023年我国有能力保持物价平稳运行央视网消息:今天(1月12日)上午,国家发展改革委举行新闻发布会,介绍国内物价运行情况。国家发展改革委价格司相关负责人表示,2022年我国物价总水平持续平稳运行,2023年有能……
工业遗产科学保护创新利用近日,在河南郑州二砂文化创意园建设方舱医院(医学观察点)一事,引发舆论关注。工业遗产的保护利用又一次成为大众讨论的焦点。在城市更新中,工业遗产特别是已成为文物保护单位的遗产,如……
今年冬天流行毛衣配牛仔裤,洋气又显瘦,御寒必备冬日生活打卡季今天穿什么明星教你怎么穿毛衣与牛仔裤这两种时尚单品,代表的风格不只是基础风格,也可以呈现很多不一样的风格,不仅是一种外穿的搭配方案,也可以作为内搭,来去搭配……
穿越火线NEST丨综述AG强势击退BS。F,挺进总决赛今天进行的是2021NEST全国线下赛败者组决赛,AG与BS。F两支队伍经过BO5赛制、三张比赛地图的角逐后,AG以绝对的优势30战胜BS。F,成功晋级总决赛,BS。F因失败淘……
西樵山今起暂停对外开放!佛山还有这些景区发布新通告明天就是重阳节了恰逢双节,不少街坊准备爬山登高不过最新通知来了!西樵山、顺峰山等园区暂停对外开放!西樵山今起暂停对外开放关于西樵山景区暂停对外开放……
请把心里的垃圾倒一倒古人云:心大则百物皆通,心小则百物皆病。一个人,如果心宽,什么都能看得开;若心小了,看什么都是问题。人心如水杯,空间有限,不断加水,总有溢出来的一天。如果内心……
过了50岁以后就要多吃它,强壮骨骼,补充身体中蛋白质过了50岁以后就要多吃它,强壮骨骼,补充身体中蛋白质,让身体更健康到了50岁以后,身体的各个方面都开始出现各种问题,这是因为身体到了50岁以后,身体中的各个方面都开始出现……
王者荣耀轰隆隆大作战限时上线,更有好礼相送限时!语音免费领王者荣耀在12月7日上线了全新的轰隆隆大作战玩法,限时体验只有短短几天可以体验这个趣味玩法,趣味语音限时领取:真有你的、常规操作!预约分享玩法还有趣味表情包哦!活动时间:……
FOF投资中欧基金桑磊稳健的阿尔法捕手写在前面我们说FOF是一个年轻的赛道,是因为相对FOF的数量较少,基金经理的数量也比较少;我们又说非常看好FOF的未来,因为FOF是以投资者为核心去做产品,而不是以基金经……
足协官宣公布黑名单50名球员上榜,33人终身禁赛,涉及5支球最近,关于中国足坛的消息还是真不少,前段时间世预赛12强赛的赛事,更是占据了各大媒体的头版头条,而国足主帅李铁更是被推上了风口浪尖,面对无数球迷的指责,无论是李铁个人还是足协领……