Rails 5.1+ Vuejs Webpacker:Normal Rails MVC vs Rails API

Kob*_*obi 10 api ruby-on-rails vue.js vuejs2 webpacker

我正在使用Rails 5.1和Vue.js启动一个新的应用程序,内置的Webpacker Vue.js包(通过--webpack = vue标志生成).

我试图了解使用普通的Rails MVC应用程序与Rails API应用程序(使用--api标志生成Rails应用程序)的优缺点.

$ rails new someapp --webpack=vue
      vs.
$ rails new someapp --api --webpack=vue
Run Code Online (Sandbox Code Playgroud)

鉴于自2015年以来Rails API已经合并到核心这一事实,并且通过Webpacker gem内置的Webpack是全新的(Rails 5.1,2017),那么构建Rails应用程序的最佳方式是什么呢?是Vuejs?或者,主要是Vuejs?

坚持使用Webpacker Vue的常规Rails,或使用Webpacker Vue的Rails API?有什么权衡?

这个答案中的一部分将简单地归结为关于全栈MVC应用与使用API​​的SPA应用的对话.但是,我是否应该考虑任何特定的Rails Way + Vue.js组件工作流程,除了"这是一个完整的MVC应用程序与SPA应用程序的问题".

我想要注意的是,我意识到答案会有点风格偏好.有些人可能更喜欢其中一个.

两者都可行,但我想考虑易用性,兼容性和以另一种方式做到这一点的权衡.

谢谢.

Cod*_*nKy 11

要在API --api模式下使用Rails,可以在此处找到有关该文件的官方文档:

http://guides.rubyonrails.org/api_app.html

这会设置一个JSON API,因此没有视图层或任何中间件.

使用该命令时,--webpack=vue您将获得视图图层.在GoRails中可以找到一个如何使用它的好例子:

https://gorails.com/episodes/tagged/VueJS(对嵌套表单使用VueJS)

您将看到的是,您可以在rails视图目录中分布多个SPA.

我个人会选择分离两个代码库.这意味着一个Rails 5 API,然后弄清楚VueJS如何与它进行通信,以便一切正常.

这里描述了设置经过良好测试的可靠Rails 5 API:

http://aalvarez.me/blog/posts/testing-a-rails-api-with-rspec.html

也很优秀,重点:

https://paweljw.github.io/2017/07/rails-5.1-api-with-vue.js-frontend-part-0-stack-choices/

请让我知道你的发现.