Ruby on Rails と React を組み合わせて使う方法

link です。
今回は Ruby on Rails と React を組み合わせて使う方法を紹介します。
想定環境
- Ruby 2.7.0 以降
- Ruby on Rails 7
- react-rails 2.6.2 以降
インストール
Ruby on Rails と React を組み合わせて使うにあたって react-rails を利用します。
まず、 --skip-javascript オプションを指定した Rails プロジェクトを新規作成します。
--skip-javascript オプションはデフォルトの JavaScript 関係の依存パッケージをインストールしないようにするための指定です。
$ rails new ReactRails --skip-javascript
$ cd ReactRails作成したプロジェクトに React アプリの構築に必要な webpacker の後継である shakapacker をインストールします。
$ bundle add shakapacker --strict
$ rails webpacker:install続いて React と関連パッケージをインストールします。
$ yarn add react react-dom @babel/preset-react prop-types css-loader style-loader mini-css-extract-plugin css-minimizer-webpack-pluginpackage.json の Babel の設定を以下のように変更します。
"babel": {
"presets": [
"./node_modules/shakapacker/package/babel/preset.js",
"@babel/preset-react"
]
},config/webpacker.yml の source_entry_path を packs に変更します。
source_entry_path: packs最後に react-rails をインストールします。
$ bundle add 'react-rails' --strict
$ rails g react:installこれでインストールは完了です。
React コンポーネントを表示させる
Rails の View に React コンポーネントを表示させます。
まず、 HelloWorld コンポーネントとコンポーネントを表示する View を作成します。
HelloWorld コンポーネントで表示するのは greeting に指定した文字列を表示するだけのシンプルなものです。
$ rails g react:component HelloWorld greeting:string
$ rails g controller react indexapp/views/react/index.html.erb に以下のコードを追加します。
react_component() に呼び出すコンポーネント名とプロパティを指定しています。
<%= react_component("HelloWorld", { greeting: "Hello from react-rails." }) %>rails s で Rails アプリを起動して localhost:3000/react/index にアクセスし、以下の画像のような画面が表示されることを確認しましょう。
参考サイト
まとめ
今回は react-rails を使って Ruby on Rails と React を組み合わせる方法を紹介しました。
Rails 上で React を使えば View の表現がより広がりますので活用してみてください。
それではまた、別の記事でお会いしましょう。




