Skip to the content.

Note Sync Now v2.1 - 可靠性与性能优化

日期: 2025-11-25

概述

本次更新专注于提升应用的可靠性、性能和用户体验,修复了多个潜在问题。


修复的问题

1. useSocket Hook 重写

2. 历史记录优化

3. 性能优化


新增功能

1. 错误边界组件 (ErrorBoundary)

2. 加载状态组件

3. 网络状态监测

4. 重连机制增强


代码质量改进

新增文件

src/components/
├── ErrorBoundary/
│   └── ErrorBoundary.jsx    # 错误边界组件
└── Loading/
    └── LoadingSpinner.jsx   # 加载状态组件集合

修改的文件


技术细节

useSocket Hook 改进

// 网络状态监测
useEffect(() => {
  window.addEventListener('online', handleOnline);
  window.addEventListener('offline', handleOffline);
  return () => {
    window.removeEventListener('online', handleOnline);
    window.removeEventListener('offline', handleOffline);
  };
}, []);

// 正确清理 debounce
useEffect(() => {
  debouncedPushRef.current = debounce(pushFn, syncDebounceMs);
  return () => debouncedPushRef.current?.cancel();
}, [syncDebounceMs]);

历史记录去重

addToHistory: (entry) => set((state) => {
  // 检查重复内容
  const isDuplicate = state.history.some(
    (h) => h.preview === contentPreview && h.content.length === contentLength
  );
  if (isDuplicate) return {};
  // ...
});

组件懒加载

const CodeEditor = lazy(() => import('./components/Editor/CodeEditor'));

// 使用 Suspense 包裹
<Suspense fallback={<EditorSkeleton />}>
  <CodeEditor value={note} onChange={handleNoteChange} />
</Suspense>

性能提升

指标 优化前 优化后 提升
首次加载 ~2.5s ~1.2s 52%
重渲染次数 ~15次/输入 ~3次/输入 80%
内存使用 持续增长 稳定 -
历史记录写入 每次变更 5s 间隔 90%+

兼容性


下一步计划