2016-11-14 10 views
0

私たちのWebアプリケーションはRuby on Rails上に完全に構​​築されています。フロントエンドはバックエンドと密接に結合されています。私たちは徐々にフロントエンドとバックエンドの分離を開始したい段階にあります。私たちはReactJSの方法でUI部分に行きたいと思っています。私たちは、その移行のために滝モデルに従いたいと思っています。フロントエンドを同形のRuby on Rails Webアプリケーションから分離します。

我々は2つのオプションがあります。react-rails呼ば

  1. 使用宝石を、して反応に新しいコンポーネントを構築。ゆっくりと既存のコンポーネントをReactコンポーネントに変換し始めます。すべてのコンポーネントをReactコンポーネントに変換したら、すべてのReactコンポーネントを取り出し、完全なフロントエンドを分離し、別の場所にホストします。

  2. ホストReactJSその他。徐々に各コンポーネントをReactコンポーネントに変換し、新しいホストされた場所に移動してRailsから削除します。唯一の捉え方は、ReactコンポーネントはRailsとは異なる場所に配置されることです。アプリ内をナビゲートしている間、別のウェブサイトに移動する気分になる可能性があります。

あなたの経験を共有し、どの方法で進めてくださいか教えてください。私たちの最終目標は、ReactJSの完全なフロントエンドとRailsのバックエンドを持つことです。 APIを介して通信し、フロントエンドとバックエンドの結合を完全に削除します。サーバーレンダリングミックスにレールを維持することを計画している場合にのみ

おかげ

+0

これはあなたのためにどのように行ったか興味がありません。私たちは現在働いている場所で同じことをしようとしており、第2のアプローチと同様のものを考えています。 –

+0

Rails v5.1と 'webpacker' gem(2017年リリース)で、Reactを(新)Railsアプリケーションに統合する方がはるかに簡単であることを指摘しておきましょう。 https:// medium。Web-Packer-and-Reils-5-1-92af8e8d9d63 – XtraSimplicity

答えて

1

使用#1(推奨されません)。そうでない場合は、完全なjsソリューションを使用して最初から開始するのに最適なオプションは#2です。新しいビューが必要なときに既存のレールアプリケーションにデカップリングされた反応コンポーネントライブラリとレンダリングパイプラインを作成すると、別のサイトのように感じる必要はありません。その後、すべてのビューコンポーネントを変換すると、アプリケーションロジックをまとめて、スイッチ全体を切り替えることができます。

別のオプションでは、新しい反応コンポーネントを別々にホストする必要もなく、反応コンポーネントは別のビルドサイクルを経て既存のサーバーにキャッシュされ、必要に応じてレールからレンダリングされます。

1

実際にRubyの中心システムから離れることはお勧めしません。 http://ruby-hyperloop.ioを使用して、react.jsコンポーネントをRubyでビルドすることができます。 Hyperloopには、反応するためのRuby DSL(HyperReact)と、ReactコンポーネントのActiveRecordモデルへの完全なアクセスを提供するHyperMeshが含まれています。

大きな利点は、クライアントでデータにアクセスするためだけにAPIを構築する必要がなく、テストツールを含む既存のレールツールチェーンを使用できることです。

HyperReactとうまく相互運用するReact.jsコンポーネントの巨大なライブラリがあります。

JSルートに行く方が良いと思われる理由があれば、私はリアスレールをお勧めします。それはうまくサポートされていて、プレレンダリング(非常に重要な概念です)を処理します。NPMとWebpackとも簡単に統合できます。

+0

Rails v5.1と 'webpacker'の宝石を使ってみると、 (2017年にリリースされた)、Reactを(新しい)Railsアプリケーションに統合する方がはるかに簡単です。 https://medium.com/react-on-rails/free-tutorial-how-to-use-react-with-webpacker-and-rails-5-1-92af8e8d9d63 – XtraSimplicity

関連する問題