> 技术文档 > 在 Vue 2 和 Vue 3 中,对于流式数据(如从 WebSocket、EventSource 等实时获取的数据)和非流式数据(一次性加载的静态数据)处理和优化_vue3 流式处理

在 Vue 2 和 Vue 3 中,对于流式数据(如从 WebSocket、EventSource 等实时获取的数据)和非流式数据(一次性加载的静态数据)处理和优化_vue3 流式处理

在 Vue 2 和 Vue 3 中,对于流式数据(如从 WebSocket、EventSource 等实时获取的数据)和非流式数据(一次性加载的静态数据),处理方式有所不同。以下是一些优化建议:


文章目录

    • 前言
      • 一、流式数据(Streaming Data)
        • 定义:
        • 特点:
        • 常见来源:
        • 示例:
      • 二、非流式数据(Non-streaming Data)
        • 定义:
        • 特点:
        • 常见来源:
        • 示例:
      • 三、对比总结
    • 处理和优化
      • 一、流式数据处理
        • 1. 使用响应式数据管理
        • 2. 防止频繁渲染
        • 3. 使用 Composition API(Vue 3)
        • 4. 清理副作用
      • 二、非流式数据处理
        • 1. 数据懒加载
        • 2. 数据缓存
        • 3. 异步加载与骨架屏
        • 4. 预加载与预取
      • 三、通用优化建议
      • 四、工具推荐

前言

什么是流式数据和非流式数据


一、流式数据(Streaming Data)

定义:

流式数据是指持续不断地产生、实时传输的数据流,通常没有明确的开始和结束点。它强调的是实时性连续性

特点:
  • 实时性强:数据一旦产生就立即发送和处理。
  • 无明确边界:数据是不断流入的,可能无限延续。
  • 低延迟要求:通常需要在短时间内完成处理和响应。
常见来源:
  • WebSocket、Server-Sent Events (SSE)
  • 物联网传感器数据
  • 实时日志、股票行情、聊天消息等
示例:
// 使用 EventSource 获取流式数据const eventSource = new EventSource(\'https://api.example.com/stream\');eventSource.onmessage = function(event) {  console.log(\'收到新数据:\', event.data); // 每次服务器推送都会触发};

二、非流式数据(Non-streaming Data)

定义:

非流式数据是指一次性获取并处理完毕的数据,通常有明确的开始和结束。

特点:
  • 静态或批量处理:数据是一次性加载完成的。
  • 有明确边界:如 JSON 数组、文件、API 返回的一次性响应。
  • 延迟容忍度高:可以等待全部数据加载完成后处理。
常见来源:
  • HTTP 请求(如 fetchaxios
  • 本地存储(localStorage、JSON 文件)
  • 表单提交、页面初始化数据等
示例:
// 使用 axios 获取非流式数据axios.get(