我可以将react.js应用程序捆绑到多个模块中吗?

2023-12-22

假设我有一个带有多个选项卡的网站,使用react.js构建,每个选项卡都包含大量数据。通常,webpack 将反应应用程序捆绑到一个捆绑包中,但如果您从不访问其中一个选项卡,这将浪费资源。是否可以将其分成单独的捆绑包,而无需重新捆绑 React Core 和 React DOM,然后根据请求调用这些额外的静态模块?

我愿意接受不同的建议 - webpack、systemjs 等。


首先,检查您的架构并确保actually需要这个。考虑到只有“基础设施”是捆绑包的一部分的典型场景,all data是通过 Ajax 下载的,因为它们是需要的,当您使用时,您不太可能(并非不可能)最终得到一个特别大的包妥善处理优化 https://github.com/webpack/docs/wiki/optimization#multi-page-app.

回到你的问题...

请记住,这可能不是在公园散步。根据我的经验,当你试图做一些偏离虚线的事情时,问题就会开始出现。您可能会遇到服务器渲染、redux 或其他方面的问题。

无论如何,你有两个选择:

1)使用多页面应用程序配置

Webpack 将输出多个“块”,您将其配置为具有多个入口点,如下所示:

module.exports = {
    entry: {
        p1: "./page1",
        p2: "./page2",
        p3: "./page3"
    },
    output: {
        filename: "[name].entry.chunk.js"
    }
}

你甚至可以有“共同的块”。看看这里 https://github.com/webpack/docs/wiki/optimization#multi-page-app.

2)使用代码分割

有一个 Webpack 加载器叫做捆绑加载器 https://github.com/webpack-contrib/bundle-loader提供了一个lazy允许根据需要实际下载模块的选项。我在阅读时遇到了这个加载器React-Router 4文档。他们甚至提供了一个根本不需要路由器的示例,在这里检查 https://reacttraining.com/react-router/web/guides/code-splitting.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以将react.js应用程序捆绑到多个模块中吗? 的相关文章

随机推荐

  • 会话和子域

    我一直在尝试让我的会话在我的子域上运行 我很确定我在周一可以工作 但在周二添加一些代码后 周三就无法工作了 我已经使用了代码ini set session cookie domain domain where domain example
  • 如何更改comboBox.SelectedIndexChanged 事件中的comboBox.Text?

    代码示例 private void comboBox SelectedIndexChanged object sender EventArgs e if some condition comboBox Text new string 我的问
  • 查询 django 迁移表

    如何从视图中查询 django migrations 表 例如 我已经尝试过 当然不起作用 from django db import migrations latest migration migrations objects all o
  • 禁用单个 .NET Core API 操作的模型验证

    我有一个 API 控制器 用于在我正在开发的应用程序上执行自动保存 它使用与视图相同的视图模型 其中有许多必填字段 如果用户在保存表单时未填写表单 则自动保存控制器可能需要保存不被视为有效的模型 默认情况下 NET Core 控制器声明为
  • 以一定角度在 Canvas 中绘制图像,无需旋转 Canvas

    我正在使用 JavaScript 中的画布在 HTML 5 中绘制图像 我需要以旋转角度绘制它 我知道这可以通过使用画布上下文应用旋转 角度 函数来完成 但我需要这样做不旋转画布本身 如果可能的话 请建议可能的方法 实际上 您可以将想要旋转
  • Android - 围绕中心点旋转图像?

    当用户触摸并拖动位图 不是视图或画布 时 如何围绕其中心点旋转位图 我已经尝试了很多有关堆栈溢出的示例 但似乎都不起作用 到目前为止我有 double r Math atan2 posX dial getWidth 2 dial getHe
  • SQLAlchemy:如何根据其后端有条件地选择列的类型

    我想用HSTORE http docs sqlalchemy org en rel 0 8 dialects postgresql html sqlalchemy dialects postgresql HSTORE如果列使用 Postgr
  • Android 更新 ui 线程元素 - 最佳实践?

    我有一个应用程序可以显示一些测量值 例如温度 速度等 我想或多或少地坚持 MVC 模式 所以我得到了一些东西 可以在值出现时接收它们 从蓝牙组件 并将它们排序到特殊的值处理程序 这些应该计算东西等等 来自地理坐标的速度等等 并将值传递给视图
  • 使用 C# 获取以毫秒为单位的时间

    我正在编写一个程序 需要以毫秒为单位获取时间 我所说的时间 是指一个永远不等于自身的数字 并且总是比前一秒大 1000 个数字 我尝试过转换DateTime Now to a TimeSpan并得到TotalMilliseconds据此 但
  • Chart.js 中多个图表上的工具提示显示错误的值

    我正在使用最新的 Chart bundle js 在同一页面上创建多个堆叠条形图 例如 我有 3 个图表和 2 个数据集 图表是正确的 但每个图表上的工具提示始终相同并且显示错误的值 截图链接 https i stack imgur com
  • PHP 中的提醒系统

    我将在周末用 PHP 创建一个小型提醒系统 计划是 用户注册 用户使用简单的表单创建提醒和待办事项 输入提醒名称 描述和时间等详细信息 该信息存储在 MySQL 数据库中 脚本检查数据库中是否有应发送的提醒 并将它们发送到用户的电子邮件以及
  • 使用Oracle序列将日志id从jdbc插入到2个表中?

    我正在使用 oracle 序列将日志 id 插入到 tableA 中 如下所示 String SQL PREP INSERT INSERT INTO tableA LOG ID USER ID EXEC TIME VALUES logid
  • Powershell计划任务在启动时重复

    我正在尝试使用以下触发器创建计划任务 启动 每 5 分钟运行一次 无限期运行 在 GUI 中 我可以通过选择以下内容轻松完成此操作 开始任务 启动时在 高级 选项卡中 重复任务间隔 5 分钟 持续时间 无限期 但我在使用 Powershel
  • 不支持 IE9 border-radius 简写?

    我过去做过一些具有 border radius 属性的东西 如下所示 border radius 7px 这在 IE9 中不起作用 我以为IE9应该支持border radius 如果您需要示例 请参阅这个网站 http www accou
  • ArrayList迭代相同的数据

    我尝试以 MVC 模式创建一个 Web 应用程序来显示数据库中的数据 JSP
  • 如何用C语言实现十进制到十六进制的转换器

    所以我是 C 的绝对初学者 我必须制作一个十进制到十六进制的转换器 所以我想我需要创建一个循环 直到结果为 0 但我怎样才能让它记住所有剩余的内容呢 该数字将使用 scanf 输入 因此我无法为其定制代码 现在我想做这样的事情 while
  • 在 Cassandra 中更改集群名称

    我有一个集群 有 2 台机器 centos7 和 cassandra 3 4 192 168 0 175 和 192 168 0 174 种子是 192 168 0 175 我只是想更改集群名称 蛋糕应该是和平的 我在每个集群上做了 upd
  • 按类别和标签列出 WordPress 帖子

    我想在 WordPress 中生成所有类别名称为 X 且标签名称为 Y 的帖子 query posts cat X List tag Y 我上面的工作在一定程度上但并不完全 因为我需要重复这个列表并只是回显 the title 问题非常相似
  • 为什么 Worklight 应用程序需要 Worklight Server?

    我在 IBM Worklight for Android 上开发了一个应用程序 我必须使用 Web 服务 但我需要 worklight 服务器 我想知道为什么在工作灯上开发的应用程序需要工作灯服务器 难道我不能在没有worklight服务器
  • 我可以将react.js应用程序捆绑到多个模块中吗?

    假设我有一个带有多个选项卡的网站 使用react js构建 每个选项卡都包含大量数据 通常 webpack 将反应应用程序捆绑到一个捆绑包中 但如果您从不访问其中一个选项卡 这将浪费资源 是否可以将其分成单独的捆绑包 而无需重新捆绑 Rea