我正在创建一个新的 rails6 应用程序,我需要在这个 rails 应用程序内托管多个 Reactjs 应用程序。
所以我将有一个基于 React 的“管理”部分。在面向客户的网站上,它将是常规的 rails erb/html 模板,但我有一个区域需要做出反应。
我怎样才能有多个 Reactjs 应用程序也可以在彼此之间共享组件?
我正在创建一个新的 rails6 应用程序,我需要在这个 rails 应用程序内托管多个 Reactjs 应用程序。
所以我将有一个基于 React 的“管理”部分。在面向客户的网站上,它将是常规的 rails erb/html 模板,但我有一个区域需要做出反应。
我怎样才能有多个 Reactjs 应用程序也可以在彼此之间共享组件?
我怎样才能有多个 Reactjs 应用程序也可以在彼此之间共享组件?
您可以使用Bit
允许您在项目之间共享组件的包。
引用自文档:
Bit 可以轻松地在任何规模的项目和应用程序之间共享和管理组件。它使您可以跨项目重用各个组件。
有关详细信息,请参阅文档和GitHub 存储库。
有几种方法可以做到这一点,我个人使用这个。
我目前正在进行的项目也是基于前端erb
和使用ReactJS
.
如果你的应用不支持 webpack,那么建议安装它。
1) 安装gem 'webpacker'
同时更新咖啡轨,用于 rails6。gem 'coffee-rails', '~> 5.0.0'
2)bundle install
3)bundle exec rails webpacker:install
4)bundle exec rails webpacker:install:react
Viola:Webpacker 现在支持 react.js
安装完成后会看到app/javascript/packs/application.js & hello_react.jsx
像往常一样创建路由和控制器,只要确保在下面创建和使用特定的布局app/views/layouts/admin.html.erb
# sample - controllers
class AdminController < ApplicationController
layout 'admin'
end
class SampleController < AdminController
def index
end
end
# create routes for this action!
# view/layouts/admin.html.erb
<head>
<%= javascript_pack_tag 'application' %>
</head>
毕竟,检查浏览器控制台它将被记录Hello World from Webpacker
从app/javascript/packs/application.js
其他一切作为默认npm
安装等。
rails s & ./bin/webpack-dev-server