连接前端和后端 - Rails 和 Vue

时间:2021-05-10 01:46:29

标签: ruby-on-rails vue.js webpacker

我对此有点困惑。
如果在 Rails 中,我们可以用 erb 文件构建页面布局,1) 什么情况下我们会使用 webpacker 添加 vue.js 文件。

到目前为止,我所了解的是 Vue 应用程序有时会向服务器发出请求,让我们说填充数据。 2)这是唯一的用途还是其他用途?

还有 3) 最好是生成一个独立的 vue 或 angular 应用程序(就像 vue create app 所以 vue 在前端文件夹中,而 rails 在后端文件夹中)或使用 webpacker在导轨中

1 个答案:

答案 0 :(得分:1)

我会试着一次性回答你的三个问题,希望没问题!

您可以通过三种常用方法将 Vue.js(或任何 JavaScript)库集成到 Rails 应用程序中:

  • 可以通过链轮加载,链轮是 Rails 内置的资产打包库。如果您的应用程序主要是静态呈现而不是 SPA(单页应用程序),您会这样做。 Sprockets 与 Rails 紧密集成,允许您在 Rails 模板和代码中引用资产。然而,就任何复杂 JS 项目的实际捆绑/打包、优化和易用性而言,Sprockets 远远落后于 Webpack。因此,如果您要向大部分为静态的网站添加少量交互性,您可能只想这样做。
  • 您可以通过 Webpacker 加载它。 Webpacker 的想法是为您提供一种非常简单的方法来开始构建带有 Rails 后端的 SPA。因此,您可以获得 Webpack 的所有好处,但不需要调整许多配置(在开始时),或设置单独的 Web 服务器,或担心 CORS。它非常适合在 Vue.js 中开始新项目/原型设计或逐步将 Vue.js 集成到更大的静态网站中。缺点是 Webpacker 使用 webpacker.yml 作为其默认配置,这会在您最终需要更复杂的配置时增加不必要的混乱。
  • 最后,您可以通过单独的 Web 服务器(“独立”)加载它,从长远来看,这将通过更少的 Webpacker 中间件和访问最新的 Webpack 版本为您提供最大程度的自由。它还为您提供了扩展、保护和执行诸如服务器端渲染之类的奇特事情的能力。缺点是这确实需要最前期的设置和长期的维护时间。 AFAIK 这是公司为 SPA 提供服务的最常见方式。