React和Rails入门

时间:2016-08-09 00:05:26

标签: ruby-on-rails reactjs react-rails

我已经开始了一个新项目,我想在其中使用React和Rails。这个项目很小,需要一些基本的交互式UI,因此需要React。据我所知,有两种方法可以开始:

  • 使用react-rails gem并使用内置视图助手
  • 创建Rails API和React / Flux前端应用

但我有几个问题。没有特别的顺序:

  • React-rails似乎是更简单的解决方案,但我将面临哪些缺点?
  • 我来自Rails和Ember背景,因此Rails API + React FE解决方案对我来说具有架构意义。但是对于react-rails宝石,我对如何完成某些事情感到困惑。首先,我该如何处理路由?我想我无法访问任何反应路径助手,并且需要将路径作为道具传递给反应组件?

提前致谢!

2 个答案:

答案 0 :(得分:2)

对于一个小项目React-Rails,https://github.com/reactjs/react-rails,非常好我去年在2个网站上使用它,每个月有大约10万访问者,我没有遇到任何问题。

如果您想使用Redux,React-Router或Flux不使用React-Rails,请使用API​​路由。

我的规则是,如果您只是使用React组件,那么使用React-Rails。

如果您正在使用Redux,Flux应用程序,那么只需制作一个前端应用程序。

答案 1 :(得分:1)

这取决于您的服务器在做多少以及您的团队。如果您希望在Rails中保留许多业务逻辑,那么您可能希望在专用的Rails服务器上运行该逻辑并将其公开为API。

然后,您可以拥有一个NodeJS服务器,该服务器除了从API获取数据并呈现React以发送给用户之外什么也不做。 react和rails之间唯一的交互是通过API作为JSON。这个基本设置可以很好地扩展,是一个非常简单的心理模型。

如果项目变大,这意味着你可以让只有JS的开发人员只使用JS,而Rails开发人员只能在Rails中工作。另外,如果你想稍后离开Rails或React,那里就不会增加复杂性了。

OR

如果您的所有开发人员都是React + Rails并且项目对于多个服务器来说有点小,那么我认为使用react-rails来提供您的页面是一个很好的解决方案。