vue3.2新增指令v-memo的使用

简介: vue3.2新增指令v-memo的使用

v-memo的讲解

vue3.2中新增了一个性能优化的指令;
这个指令就是v-memo;
v-memo:可以做性能优化,v-memo中值若不发生变化,整个子树的更新会被跳过。
<div v-memo="[valueA, valueB]">
  ...
</div>
当组件重新渲染的时候,如果 valueA 与 valueB 都维持不变。
那么对这个 <div> 以及它的所有子节点的更新都将被跳过。
事实上,即使是虚拟 DOM 的 VNode 创建也将被跳过,因为子树的记忆副本可以被重用。
这样一来,性能将会显著提升。

场景描述

假设后端返回来了10000条数据。
前端需要做筛选。
选出符合条件的数据进行展示。
如果没有符合条件的。则保持上次的搜索结果。

v-memo的使用

<template>
  <div class="home">
    <input type="text" v-model="jiaoSheng">
    <!-- v-memo中值若不发生变化,则不会进行更新 -->
    <ul v-memo="[shouldUpdate]">
        <li class="licss" v-for="item in arr" :key="item"> 
          {{ jiaoSheng }} -- {{ animalType[jiaoSheng] }} 
        </li>
    </ul>
  </div>
</template>
<script lang="ts" setup>
import { ref } from "@vue/reactivity"
import { watch } from "@vue/runtime-core"
const arr=new Array(10000)
const animalType={
  'mie':'🐏',
  'mo':'🐂',
  'miao':'🐱',
}
const jiaoSheng=ref('mie')
const shouldUpdate=ref(0)
// 监听jiaoSheng(输入框中的值)。
// 如果数据发生变化,并且在animalType对象中存在。试图进行更新。否则试图不进行更新。
watch(()=>jiaoSheng.value,()=>{
  if(Object.keys(animalType).includes(jiaoSheng.value)){
    shouldUpdate.value++
  }
})
</script>

遇见问题,这是你成长的机会,如果你能够解决,这就是收获。

相关文章
|
1月前
|
JavaScript 前端开发
请详细解释一下Vue的模板语法中各个指令的具体用法。
请详细解释一下Vue的模板语法中各个指令的具体用法。
23 2
|
1月前
|
JavaScript 前端开发 算法
千分位分隔?一个vue指令搞定
千分位分隔?一个vue指令搞定
69 0
|
1月前
|
JavaScript 前端开发 算法
函数防抖?一个vue指令搞定
函数防抖?一个vue指令搞定
44 0
|
28天前
|
JavaScript 前端开发 C++
【Vue】Vue快速入门、Vue常用指令、Vue的生命周期
【Vue】Vue快速入门、Vue常用指令、Vue的生命周期
17 2
|
18天前
|
JavaScript 索引
|
20天前
|
JavaScript 前端开发 开发者
Vue常见的指令
Vue常见的指令
5 0
|
1月前
|
JavaScript 前端开发
vue常见的指令
vue常见的指令
14 2
|
1月前
|
JavaScript
vue常用指令
vue常用指令
23 1
|
1月前
|
JavaScript 前端开发 UED
数据绑定魔法:Vue中的插值和指令
【4月更文挑战第22天】Vue.js 是一款轻量级前端框架,擅长处理动态数据。本文聚焦于Vue中的数据绑定,包括插值和指令。插值({{ }})用于在HTML中展示JavaScript表达式,如变量和简单运算。指令(v-前缀)如v-bind、v-model和v-on,则提供更复杂的声明式渲染。v-bind绑定属性,v-model实现双向数据绑定,v-on监听DOM事件。指令还支持修饰符(如.prevent)和动态参数,增强灵活性。掌握这些,能提升开发效率并创建响应式界面。
|
1月前
|
JavaScript 前端开发 安全
【Vue】内置指令真的很常用!
【Vue】内置指令真的很常用!