在 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 请求(如
fetch
或axios
) - 本地存储(localStorage、JSON 文件)
- 表单提交、页面初始化数据等
示例:
// 使用 axios 获取非流式数据axios.get(