Laravel 使用react.js和后端时,您的工作流是什么样子的?

Laravel 使用react.js和后端时,您的工作流是什么样子的?,laravel,reactjs,Laravel,Reactjs,我正在使用Laravel5.2和ReactJS开发一个简单的CRM应用程序。以前我单独使用它们,但现在我想尝试将它们结合在一起,这样Laravel将成为我的API,前端将全部使用ReactJS 据我所知,当我的应用程序准备上线时,我将提供我的主视图,其中包括root div、bundle.js等 说到开发部分,我有点困惑。我真的很喜欢热装,但现在我必须四处走走才能让它工作 我并排运行两台服务器。Webpack dev server和homestead,因此我能够调用我的API。但我还必须为web

我正在使用Laravel5.2和ReactJS开发一个简单的CRM应用程序。以前我单独使用它们,但现在我想尝试将它们结合在一起,这样Laravel将成为我的API,前端将全部使用ReactJS

据我所知,当我的应用程序准备上线时,我将提供我的主视图,其中包括root div、bundle.js等

说到开发部分,我有点困惑。我真的很喜欢热装,但现在我必须四处走走才能让它工作

我并排运行两台服务器。Webpack dev server和homestead,因此我能够调用我的API。但我还必须为webpack dev服务器提供额外的index.html。当我在index.blade.php视图中更改某些内容时,我还需要在这个index.html中更改它,这有点痛苦

有什么很酷的技巧可以用来改进我的工作流程吗?如果有任何例子,请提供给我一个链接,因为我无法找到一个。有很多小的待办事项应用程序并不能真正解决我的问题

目前我正在使用这种方法

@更新

我想我已经找到了一个可以接受的解决办法。我将坚持使用我在问题中提供的webpack服务器配置(这真的很好,因为您可以使用热重新加载+您的api调用被重定向到后端端口,所以不是localhost:8080/api/user…您调用/api/user/1),但是我还开发了一个简单的elixir扩展,它将php编译成简单的静态HTML页面,解决了编辑两个索引文件的问题(我们都知道程序员很懒)

var php2html=require(“gulp-php2html”);
var gulp=需要(“gulp”);
var rename=需要(“吞咽重命名”);
var任务=长生不老药任务;
extend(“php2html”),函数(消息){
新任务(“php2html”,函数(){
返回gulp.src(“./resources/views/index.blade.php”)
.pipe(php2html())
.pipe(重命名('index.html'))
.管道(大口目的地(“./”);
})
.watch(“resources/views/index.blade.php”);
});
长生不老药(功能(混合){
mix.sass(“app.scss”);
php2html();
});
现在我有两个索引文件:

  • 资源/视图中的index.blade.php,由路由器在生产时解析

  • index.html位于我的应用程序文件夹的根目录中,该文件夹由webpack dev server用于开发

当然,现在这些文件是同步的,这是gulp watch的原因:)


如果有更好的方法,请告诉我。

我通常使用此网页插件解决此问题(复制的index.html/php文件):

我认为这个想法与你的相反。不必将php文件编译成静态html,您可以使用HtmlWebpack插件,使用
filename
configuration选项输出index.tmpl.php文件(或您需要的任何扩展名)。通常,我将该路径设置为应用程序服务器的templates文件夹

我相信这种方法通常比相反的方法更容易。
使用此插件还有其他好处,例如根据您的网页包输出配置自动注入捆绑脚本标记,以及将自动缓存爆破文件哈希添加到脚本标记URL。

我将两者分开。因此,Laravel将独立处理所有传入的请求。react将处理所有前端、对服务器的请求等。我更喜欢这种方式,因为我可以更轻松地维护它。这很好,但有时您确实需要应用程序服务器来呈现索引文件(例如,您需要从后端向js应用程序提供一些初始数据,避免向服务器发出不必要的第一次请求),而且部署可能会变得有点棘手,这取决于您的场景。