为什么我用纯 HTML+JS 做出秒开的 PDF 工具,却坚决不用 React?

👉 工具网址:https://aservus.com

大家好,我是提米哥,TMDM.cn【开发者专区】首席选品官。今天不聊框架多酷,只聊一个真实问题:你做的工具,是为用户省时间,还是为开发省代码?

Aservus(一个免费在线 PDF 工具站)上线后,很多人第一反应是:“没用 React/Vue?这能上生产?”
我的回答很直接:不是不能用,而是根本不需要。

下面用大白话拆解三个关键原因——每个都直击开发者日常痛点:

  • 场景太简单,框架反而添乱
    Aservus 的每个页面只干一件事:比如「合并 PDF」、「PDF 转 Word」、「压缩 PDF」。
    用户流程就四步:打开网页 → 选文件 → 点开始 → 下载结果。
    没有登录态、没有实时协作、没有几十个切换按钮和条件渲染。
    → 用 React 就像用起重机搬一盒回形针:力气花得很大,活儿还没干利索。

  • 快,就是核心功能
    用户不是来“浏览”的,是来“救命”的:

  • 投简历前 3 分钟要压缩 PDF;
  • 会议开始前 2 分钟要合并 5 个文档。
    这时候,多加载 1.2 秒 JS bundle,就可能多流失 30% 用户
    纯 HTML + Vanilla JS:页面一打开,上传框立刻出现,连“加载中…”都不用等。
    React 即使开了 code-splitting 和 SSR,也要经历解析、挂载、hydrate……这些步骤,在 PDF 工具里全是无效开销。

  • WebAssembly(WASM)本地处理,越轻越稳
    Aservus 所有 PDF 处理都在浏览器里完成(不传服务器),靠的是编译成 WebAssembly 的 C++ 库(比如 pdf-lib、libpdfium)。
    WASM 初始化、内存管理、回调触发,本身就需要精准控制。
    如果套一层 React:
    js
    // ❌ 不推荐:在 useEffect 里加载 WASM,还要处理依赖、清理、竞态
    useEffect(() => {
    loadWasmModule().then(module => {
    setModule(module); // 触发重渲染
    });
    }, []);

    而纯 JS 可以这样写,清晰、可控、无副作用:
    “`js
    // ✅ 推荐:手动控制 WASM 生命周期,UI 更新完全自主
    let wasmModule = null;

async function initPdfProcessor() {
// 1. 预加载 WASM 模块(可缓存)
wasmModule = await WebAssembly.instantiateStreaming(fetch(‘/pdf_processor.wasm’));

// 2. 初始化后,直接操作 DOM 显示“准备就绪”
document.getElementById('status').textContent = '✅ 已就绪,拖入 PDF 开始处理';

}

// 3. 用户上传后,直接调用 WASM 函数,不触发任何框架更新
function handleFileUpload(file) {
const arrayBuffer = await file.arrayBuffer();
const result = wasmModule.instance.exports.process_pdf(arrayBuffer); // 二进制直传
downloadBlob(result, ‘output.pdf’);
}
“`

最后说句实在话:
✅ 我不是“反框架”,而是“反默认”——
如果明天我要做一个带实时图表、权限分级、多维度筛选的后台分析页?我秒切 React。
但做「工具型产品」?请先问自己一句:

这个框架,有没有帮我解决一个真实存在的性能/体验/维护问题?
如果答案是“没有”,那它大概率只是增加了你调试时的困惑度。

现在 Aservus 是一个 PWA:离线可用、秒级加载、代码全量可读。
没有 webpack,没有 vite.config.ts,没有 node_modules 里 478 个依赖。
上线 6 个月,新增功能平均 20 分钟写完、测试、发布——因为逻辑就写在 merge.js 里,打开就能改。

如果你也在做工具类产品(PDF / 图片 / 文档 / 音频处理类),不妨试试:关掉脚手架,新建一个 index.html,从 <input type="file"> 开始写。
有时候,最硬核的技术选择,恰恰是最简单的那个。

直达网址:https://aservus.com

作加

类似文章