【问题标题】:Storing JS variable before react js loaded在加载反应js之前存储JS变量
【发布时间】:2018-12-21 18:15:07
【问题描述】:

我们有带有 react 作为前端框架的 Rails 应用程序。我需要在 javascript 变量中存储一些哈希值,例如

windows.FeatureFlag = {featureA: true, featureB:false}

在所有文件加载之前... 我们按以下顺序加载js文件

//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require react-server
//= require react_ujs
//= require_tree .

我正在尝试在加载 react js 之前设置上述 FeatureFlag...我尝试添加 DOMContentLoaded 但仍然将变量 defined 设置为 undefined。 .

我反应文件我们需要/设置多个不同的值,所有这些都取决于这个变量以避免多个服务器调用......

如何实现?

【问题讨论】:

    标签: javascript ruby-on-rails reactjs ruby-on-rails-4


    【解决方案1】:

    Jared 的回答会起作用,但它为客户添加了另一个请求,没有经过预处理,需要包含在所有布局中。我会:

    为脚本创建一个新文件...命名为 react_config.js

    windows.FeatureFlag = {featureA: true, featureB:false}
    

    然后:

    //= require jquery
    //= require jquery_ujs
    //= require jquery-ui
    //= require react_config.js
    //= require react-server
    //= require react_ujs
    //= require_tree .
    

    application.js 已经包含在

    【讨论】:

    • 感谢您的回答
    【解决方案2】:

    放在文档顶部<head>

    <head>
      <script>
        window.featureFlags = {featureA: true, featureB:false};
      </script>
      <!-- now load everything else -->
    </head>
    

    通常,&lt;head&gt;app/views/layouts/application 中。

    您可能还会发现content_for 很有用。

    【讨论】:

    • 感谢您的回答,但不幸的是,react 执行速度比 rails 资产管道更快,我在同一个自定义 react 需要文件中实现了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 1970-01-01
    • 2022-08-17
    • 1970-01-01
    • 2019-06-19
    • 2020-05-23
    • 1970-01-01
    相关资源
    最近更新 更多