Javascript 反应DOM—;仅导入渲染会产生与导入整体/默认值相同的束大小

Javascript 反应DOM—;仅导入渲染会产生与导入整体/默认值相同的束大小,javascript,reactjs,webpack,es6-modules,react-dom,Javascript,Reactjs,Webpack,Es6 Modules,React Dom,我有一个网页配置,成功地启用了树摇动。然而,我发现令人沮丧的是,无论我是将react dom作为默认导出导入,还是只导入render(我唯一需要的函数),根据Webpack bundle analyzer,最终捆绑包中的大小都是一样的。高达114kb。Webpack的建议包大小为244kb,因此仅使用React DOM就占用了将近一半的空间。为什么会这样?有什么办法吗 import { render } from "react-dom"; // or import React

我有一个网页配置,成功地启用了树摇动。然而,我发现令人沮丧的是,无论我是将react dom作为默认导出导入,还是只导入render(我唯一需要的函数),根据
Webpack bundle analyzer
,最终捆绑包中的大小都是一样的。高达114kb。Webpack的建议包大小为244kb,因此仅使用React DOM就占用了将近一半的空间。为什么会这样?有什么办法吗

import { render } from "react-dom";
// or
import ReactDOM from "react-dom";
// both give same 114kb output in final bundle :(


只有在某些代码未使用且可以安全删除的情况下,摇树才有效。不幸的是,React-DOM几乎使用了它导出的所有代码,而且有很多

我建议查看Preact(),这是React的另一种实现。Preact core为3kb,几乎与React完全兼容,为了完全兼容,还提供了
Preact compat
插件


它更小更快,因此是双赢的。

PS:它与React非常兼容,我曾经在React原生Web应用程序中使用它代替React,速度明显更快。(不过,我还必须安装另一个库,因为RNW使用内部React函数,但这两种方法都非常好。)