【问题标题】:Embedding a React App in an existing Rails App在现有的 Rails 应用程序中嵌入 React 应用程序
【发布时间】:2017-03-09 02:57:28
【问题描述】:
我工作的公司目前正在尝试更新版本的前端。其中一个功能是一个独立的 React 应用程序,它以 Rails API 为基础。我们希望应用程序的一部分(React 部分)使用 react 路由器而不是 rails 路由器。
有什么方法可以让我们将 react 应用程序嵌入到应用程序的自己的部分中,同时仍然保持会话并能够将 rails 路由器用于 rails 组件,将 react 路由器用于 react 组件。
【问题讨论】:
标签:
javascript
ruby-on-rails
reactjs
【解决方案1】:
是的,这是很常见的事情,尤其是在迁移到更现代的客户端繁重的应用程序时。
正如您所说,您将使用 Rails 通过 cookie 处理会话管理,而路由将是棘手的部分。但是,您可以选择使用 rails 来提供单个页面,并让 react-router 处理其余部分。这取决于像 auth see 这样的东西。
一旦呈现了 html 页面,就会加载 javascript,react-router 将处理其余的路由。这意味着您将无法通知 Rails 客户端路由更改。如果不进一步了解您的应用程序设计,我很难解决这是否会成为问题。
另见gem。
【解决方案2】:
// 在现有应用中使用 yarn 添加 react
yarn install
yarn add https://github.com/rails/webpacker.git
yarn add react
yarn add axios
resolved_paths: ['app/assets'] // 添加到 webpacker 以获取 assets 文件的访问权限