在加载React JS之前存储JS变量

时间:2018-12-21 18:15:08

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

我们有将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 ..

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

如何实现?

2 个答案:

答案 0 :(得分: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已包含在

答案 1 :(得分:0)

将其放在文档<head>的顶部

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

通常,<head>位于app/views/layouts/application中。

您可能还会发现content_for有用。