Javascript 在Laravel/Vue.js项目中共享静态/配置数据的最佳方式是什么

Javascript 在Laravel/Vue.js项目中共享静态/配置数据的最佳方式是什么,javascript,php,laravel,webpack,vue.js,Javascript,Php,Laravel,Webpack,Vue.js,我目前正在从事一个Laravel/Vue.js项目,在这个项目中,我需要在后端和前端使用相同的数据(即操作系统的静态列表)。到目前为止,我想到了以下几种不同的选择: 在my Laravel和vue.js项目中重复数据 通过API将数据加载到前端 通过公共静态配置文件共享数据,并可能在处理时将数据预加载到Vue中(当前使用webpack) 第三种选择似乎是最好的,因为它避免了数据重复和不必要的请求,并且不知道是否可以用现有的工具来完成。最好的方法取决于应用程序的具体情况 我通常更喜欢#3,因为

我目前正在从事一个Laravel/Vue.js项目,在这个项目中,我需要在后端和前端使用相同的数据(即操作系统的静态列表)。到目前为止,我想到了以下几种不同的选择:

  • 在my Laravel和vue.js项目中重复数据
  • 通过API将数据加载到前端
  • 通过公共静态配置文件共享数据,并可能在处理时将数据预加载到Vue中(当前使用webpack)

第三种选择似乎是最好的,因为它避免了数据重复和不必要的请求,并且不知道是否可以用现有的工具来完成。

最好的方法取决于应用程序的具体情况

我通常更喜欢#3,因为那是“Laravel方式”。在.env文件中使用前缀为
MIX_
的变量,并在前端使用
process.env.MIX_VARIABLE_NAME
访问这些变量,如中所述。使用
env

虽然不支持阵列,但您始终可以在后端和前端构建阵列,如下所示:

$config = [     
    env('KEY1') => [
        env('KEY_ONE') => env('VALUE_ONE'),     
        env('KEY_TWO') => env('VALUE_TWO')  
    ],
    ...
};

你如何定义“最佳”?这听起来非常主观/基于我的观点。嗨@DavidStockinger-这里应该更清楚。这里的最佳做法是避免数据重复,并且必须像第一种选择那样在两个地方维护数据。第二个选项是两个选项中性能较差的,因为这意味着必须对所需的静态数据发出API请求,这可能会根据应用程序的大小而变得过多。我不知道这种将env变量注入mix的方法。在多大程度上可以使用这种方法?我可以看出它对单值和“环境”配置很有帮助,但似乎仅限于用于静态非环境配置数据。另外,据我所知,dotenv不支持数组。我已经更新了我的答案,以获得构造数组的方法。它们不受开箱即用的支持,但从单个值构造它们非常容易。您还可以使用变量的前缀来标识它们与hanks@Paras相关的父级。我接受了这个答案,因为这是一个可行的解决方案,并且学到了一些新的东西。对于我的用例,我决定通过生成一个静态js文件来实现这一点,该文件包含应用程序所需的所有静态数据,并嵌入到应用程序头中,以便在Vue.js中使用。我想到的一个最终解决方案需要开发一个webpack预加载程序,该程序评估laravel配置文件中的数组,并将其翻译/注入到js文件中,以供Vue.js应用程序使用