使用React/Flux的Grails项目

使用React/Flux的Grails项目,grails,flux,refluxjs,Grails,Flux,Refluxjs,我目前正在从事一个项目,我们正在为我们开发一个React/Flux用户界面。我被告知,UI代码需要转换为GSP并放入Grails项目中,以便与后端协同工作。我觉得将UI移动到GSP中会使我们的Flux实现(回流)的使用无效 我最初的想法是,这是错误的,我没有通过搜索找到Grails和Flux的任何用途 为什么GSP的使用会使React或Flux的使用无效?GSP只是一种呈现HTML的服务器端处理语言。最后,我检查了React和Flux,它们与Javascript结合在一起,在很多方面都很好地使用

我目前正在从事一个项目,我们正在为我们开发一个React/Flux用户界面。我被告知,UI代码需要转换为GSP并放入Grails项目中,以便与后端协同工作。我觉得将UI移动到GSP中会使我们的Flux实现(回流)的使用无效


我最初的想法是,这是错误的,我没有通过搜索找到Grails和Flux的任何用途

为什么GSP的使用会使React或Flux的使用无效?GSP只是一种呈现HTML的服务器端处理语言。最后,我检查了React和Flux,它们与Javascript结合在一起,在很多方面都很好地使用HTML


您可以一起使用它们,而不会产生任何问题。如何,取决于您。

为什么GSP的使用会使React或Flux的使用无效?GSP只是一种呈现HTML的服务器端处理语言。最后,我检查了React和Flux,它们与Javascript结合在一起,在很多方面都很好地使用HTML


您可以一起使用它们,而不会产生任何问题。怎么做取决于你。

有人告诉你错了。GSP是Java servlet。将React与服务器端技术混合使用的唯一原因是针对同构应用程序,在将JS返回/推送到客户端之前,您可以编译JS。在这种情况下,您需要创建类似于基于Rhino的servlet的东西。否则,请像对待任何其他静态资产一样对待它。

您被告知错误。GSP是Java servlet。将React与服务器端技术混合使用的唯一原因是针对同构应用程序,在将JS返回/推送到客户端之前,您可以编译JS。在这种情况下,您需要创建类似于基于Rhino的servlet的东西。否则,请像对待任何其他静态资产一样对待它。

我参与了一个使用React作为前端的Grails生产应用程序。没有必要将React/Flux代码“转换”为GSP——事实上,这将在很大程度上牺牲React UI的好处。没有必要——Grails非常适合为React(或Angular,或任何其他JS框架)应用程序提供一个新的框架

根据您的应用程序需要,您可能希望为前端提供一个restful API,以便根据需要使用/发布。使用
URLMappings.groovy
指定React应用程序可以访问的端点。您可能会选择使用JSON作为将数据发送到React应用程序的媒介,这是一种快速、灵活和直接的方法,可以将Grails域对象或其他数据呈现到JSON负载

关于通量,Grails不应该有任何特定的内容——使用它来管理和改变React应用程序中的状态,也许可以通过从Flux dispatcher(或action creator)向Grails后端发出rest调用来检索数据和更新Flux存储

关于GSP,我的建议是只需在主控制器上安装一个基本的GSP视图,它只需加载运行React应用程序所需的Javascript即可。如果您使用的是像这样的模块绑定器,那么可以将
bundle.js
文件链接到视图中,并提供顶级组件中指定的根元素:

<html>
<head>
    <title>My App</title>
</head>
<body>

  <div id="app"></div>
  <asset:javascript src="bundle.js"/>

</body>
</html>

我的应用程序
请注意,要使其工作,您必须将
webpack
包输出到
grails应用程序/assets/javascripts
,我发现这是在grails应用程序中加载React应用程序的最简单方法。使用这种方法,无需直接将React、Flux或其他相关库加载到Grails中——只需使用标准JS工具链(使用
npm
/
package.json
来管理依赖项)构建项目即可,并将整个应用程序处理/捆绑到一个普通的JS捆绑包中,该捆绑包可以由Grails资产管道加载


React是一个很好的选择,作为一个以视图为中心的Javascript库,它不会对您的后端架构做很多假设。凭借基于Grails的可靠restful api,以及一些关于工具和项目结构的智能选择,React非常适合Grails应用程序中的现代单页Javascript UI。

我参与了一个使用React作为前端的Grails生产应用程序。没有必要将React/Flux代码“转换”为GSP——事实上,这将在很大程度上牺牲React UI的好处。没有必要——Grails非常适合为React(或Angular,或任何其他JS框架)应用程序提供一个新的框架

根据您的应用程序需要,您可能希望为前端提供一个restful API,以便根据需要使用/发布。使用
URLMappings.groovy
指定React应用程序可以访问的端点。您可能会选择使用JSON作为将数据发送到React应用程序的媒介,这是一种快速、灵活和直接的方法,可以将Grails域对象或其他数据呈现到JSON负载

关于通量,Grails不应该有任何特定的内容——使用它来管理和改变React应用程序中的状态,也许可以通过从Flux dispatcher(或action creator)向Grails后端发出rest调用来检索数据和更新Flux存储

关于GSP,我的建议是只需在主控制器上安装一个基本的GSP视图,它只需加载运行React应用程序所需的Javascript即可。如果您使用的是像这样的模块绑定器,那么可以将
bundle.js
文件链接到视图中,并提供顶级组件中指定的根元素:

<html>
<head>
    <title>My App</title>
</head>
<body>

  <div id="app"></div>
  <asset:javascript src="bundle.js"/>

</body>
</html>

我的应用程序
请注意,要使其工作,您必须将
webpack
包输出到
grails应用程序/assets/javascripts
,我发现这是在grails应用程序中加载React应用程序的最简单方法。使用这种方法,不需要直接将React、Flux或其他相关库加载到Grails中,只需使用标准JS工具链(使用
npm)构建项目即可