vue性能优化(响应数据&静态数据)

什么是响应式数据

在系统中会发生变化的数据,就是响应式数据,需要用ref或者reactive来定义,换而言之,用ref, reactive定义的数据就是响应式数据。

什么是静态数据

在系统中不会发生变化的就是静态数据,换而言之,静态数据不用ref,reactive包裹

性能优化方案

在系统中,不要把静态数据加上ref,reactive写成响应式数据。减少了 Vue 的响应式系统需要跟踪的依赖项数量,从而优化了性能。

举个栗子

js 复制代码
<template>
  <div>
    <h1>{{ staticData.title }}</h1>
    <p>{{ staticData.description }}</p>
    <p>Count: {{ count }}</p>
    <button @click="increment">Increment</button>
  </div>
</template>

<script>
import { ref } from 'vue';

export default {
  setup() {
    // 静态数据,不需要响应式
    const staticData = {
      title: 'Vue Performance Optimization',
      description: 'Learn how to optimize Vue performance with static and reactive data.'
    };

    // 响应式数据,使用 ref 创建
    const count = ref(0);

    const increment = () => {
      count.value++;
    };

    return {
      staticData,
      count,
      increment
    };
  }
};
</script>

详细说明:

  1. 静态数据:

    • staticData 包括 title 和 description,这些数据在组件初始化后不会改变。
    • 不需要使用 ref 或 reactive,因为它们不需要响应式特性。
    • 这样可以避免 Vue 对这些数据进行响应式处理,从而提高性能。
  2. 响应式数据:

    • count 是一个需要响应式的数据,因为用户点击按钮时它会变化。
    • 使用 ref 将其包裹,使其成为响应式数据。
    • 当 count 发生变化时,Vue 会自动更新 DOM。
  3. 性能优化:

    • 通过只将需要响应的数据(如 count)包裹在 ref 中,避免了对静态数据(如 staticData)的不必要的响应式处理。
    • 这种方式减少了 Vue 的响应式系统需要跟踪的依赖项数量,从而优化了性能。

在 Vue 中,合理区分静态数据和响应式数据,使用 ref 或 reactive 只对需要响应的数据进行包装,可以有效避免不必要的性能开销。

相关推荐
志尊宝44 分钟前
Vue3 零基础每日笔记(076):防抖节流的正确使用——搜索框、按钮防重复提交、滚动监听
javascript·vue.js·笔记
顽疲1 小时前
从零用 Java 实现小红书 SpringBoot Vue UniApp(23)笔记话题多对多:一条笔记进多个话题池
java·vue.js·spring boot
打工仔折腾 AI1 小时前
FaceFusion本地换脸实战:Windows整合包、模型选择与遮罩调参记录
人工智能·windows·后端·python·深度学习·性能优化·ai agent 实战
能源革命1 小时前
Vue 网格拖拽布局组件全景指南:7 大方案深度对比
前端·javascript·vue.js
daols882 小时前
vue 表格组件 vxe-table 实现自定义多行编辑功能
前端·javascript·vue.js·vxe-table
@#¥&~是乱码鱼啦2 小时前
ArkWeb 混合手记 07|性能优化、内存管控、内核预热、崩溃防护,整套系列终章
性能优化
志尊宝2 小时前
Vue3 零基础每日笔记(075):图片懒加载与骨架屏
javascript·vue.js·笔记
lvqinglou2 小时前
学习Sql-part1 for婷姐
sql·学习·性能优化
JMchen2 小时前
性能优化——让Native代码飞起来
android·c++·性能优化
yunwei373 小时前
eBPF 入门实践教程十七:编写 eBPF 程序统计随机/顺序磁盘 I/O
linux·后端·性能优化