前端性能优化

本篇主要讲述element-plus中使用Tooltip单例模式,实现的性能优化。

效果:实现渲染优化3秒-2秒(优化33%)

javascript 复制代码
<template>
  <div>
    <el-button
      v-for="i in 3"
      :key="i"
      @mouseover="(e) => (buttonRef = e.currentTarget)"
      @click="visible = !visible"
      >Click to open tooltip</el-button
    >
  </div>

  <el-tooltip
    ref="tooltipRef"
    :visible="visible"
    :popper-options="{
      modifiers: [
        {
          name: 'computeStyles',
          options: {
            adaptive: false,
            enabled: false,
          },
        },
      ],
    }"
    :virtual-ref="buttonRef"
    virtual-triggering
    popper-class="singleton-tooltip"
  >
    <template #content>
      <span> Some content </span>
    </template>
  </el-tooltip>
</template>

<script setup lang="ts">
import { ref } from 'vue'

const buttonRef = ref()
const tooltipRef = ref()

const visible = ref(false)
</script>

<style>
.singleton-tooltip {
  transition: transform 0.3s var(--el-transition-function-fast-bezier);
}
</style>

以上述代码(element-plus官方代码)为例,此实现的是,在一个button上面增加tooltip文字描述,如果存在很多button时,最原始的操作是,在每个button上面都增加一个tooltip,目前这种实现方式是将tooltip单拎出来,使所有的button只挂在一个tooltip。

在DOM渲染时,就只加载一个tooltip即可,最终用户看到的效果是一致的!

相关推荐
雮尘11 分钟前
如何在非 Claude IDE (TARE、 Cursor、Antigravity 等)下使用 Agent Skills
前端·agent·ai编程
icebreaker12 分钟前
Weapp-vite:原生模式之外,多一种 Vue SFC 选择
前端·vue.js·微信小程序
icebreaker18 分钟前
重走 Vue 长征路 Weapp-vite:编译链路与 Wevu 运行时原理拆解
前端·vue.js·微信小程序
wuhen_n21 分钟前
代码生成:从AST到render函数
前端·javascript·vue.js
Lee川22 分钟前
从异步迷雾到优雅流程:JavaScript异步编程与内存管理的现代化之旅
javascript·面试
喝咖啡的女孩23 分钟前
浏览器前端指南
前端
wuhen_n25 分钟前
AST转换:静态提升与补丁标志
前端·javascript·vue.js
喝咖啡的女孩25 分钟前
浏览器前端指南-2
前端
cxxcode34 分钟前
从 V8 引擎视角理解微任务与宏任务
前端
destinying1 小时前
性能优化之实战指南:让你的 Vue 应⽤跑得飞起
前端·javascript·vue.js