在 Vue 2 和 Vue 3 中,对于流式数据(如从 WebSocket、EventSource 等实时获取的数据)和非流式数据(一次性加载的静态数据),处理方式有所不同。以下是一些优化建议:
文章目录
前言
什么是流式数据和非流式数据
一、流式数据(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(