【问题标题】:React+webpack+react-hot-loader dynamically json loading in table in productionReact+webpack+react-hot-loader 在生产表中动态加载 json
【发布时间】:2017-10-20 07:38:52
【问题描述】:

大家好。

我有一个简单的应用程序,它使用 React+Webpack2+react-hot-loader 显示来自 Json 文件的数据表。

import Data from '../../src/data/last.json';

当我启动“webpack-dev-server”时,表格显示的所有信息都会动态变化而无需刷新整页,当“last.json”被另一个应用程序覆盖时。

我正在使用来自 GitHub react-hot-boilerplate 的示例,并且已经阅读了 WebPack off doc about HMR,上面写着:

热模块更换功能不适用于生产。你应该只在你的开发配置/环境中使用它。

问题:我能否在生产环境中使用 hot-loader 或仅通过 ajax 实现此行为?

或者我需要在后端开始使用带有“动态更改存储”的 Redux?
现在我在 React 上使用带有 API 的 php 后端,我认为这对我的任务来说已经足够了。我错了吗?

【问题讨论】:

    标签: javascript ajax reactjs webpack webpack-dev-server


    【解决方案1】:

    热重载是开发过程中经常发生修改的实际情况。生产中的单页应用程序加载一次并一直在客户端工作。当您将新版本的应用程序发布到生产环境时,您需要以某种方式将信号推送到客户端应用程序以重新加载。客户端应用程序在适合应用程序逻辑时执行重新加载。

    您的 json 文件在每次修改后都会热重载到客户端应用程序,因为它是 webpack 构建和热重载的工作过程。通常,数据不会通过磁盘中的文件落入应用程序,而是作为服务器程序回复。并且热加载没有这种可能性来服务于应用程序数据传输。您的 json 文件作为修改后的源文件进入应用程序。热重载是将你的 json 文件作为源文件,并在更改后将其热重载到应用程序中。

    热重载是开发构建过程。这不是应用程序的工作过程。

    【讨论】:

    • 那么,在生产环境中实现动态组件重新加载而不刷新全页的唯一选择是使用 Flux/Redux 和存储,对吧?
    • 您已经询问了带有数据的 json。如果 json 具有静态数据 - 您将其与 json loader 集成到包中(如您的字符串代码示例中所示)。如果 json 内容是动态数据 - 您的应用程序必须对该数据执行对服务器的请求。现在您询问代码组件 - 它通常是静态的并作为包加载。当您发布新版本的应用程序时,只有在所有客户端应用程序完全重新加载以兼容新的服务器代码后,服务器才可能与以前的客户端应用程序不兼容。
    • flux/redux 是应用程序状态管理方法。使用什么是您的选择。应用程序状态项可能与服务器状态相关联,也可能不相关。您的组件旨在反映应用程序状态。
    猜你喜欢
    • 2023-03-04
    • 2020-01-01
    • 1970-01-01
    • 2016-02-28
    • 2018-01-22
    • 2016-06-14
    • 2018-02-11
    • 1970-01-01
    • 2018-12-03
    相关资源
    最近更新 更多