现在需要做一个项目,要求实现前后端分离,因为最近一直在琢磨 Rails,所以想在之上进行尝试,但是不太清楚 Rails 上如何实现。搜索了一波之后,发现这方面的资料不是很多,并且很多东西都是我之前没有涉及到的。
Rails + ES6 + Angular2 前后端分离开发(一)
因为之前前端经验很少,知识储备不够,所以看起来很费解,能否请各位前辈指导一下如何实现比较方便?需要补充那些知识,最近买了 JS 的书JavaScript DOM 编程艺术 (第 2 版) ,正准备深入了解下,除此之外还需要哪些知识(HTML 和 CSS 除外)
1,楼主链接给撑了邮箱格式。 2,前后端分离的话,按照项目具体情况,可以尝试一下 sinatra 或者 Rails5 的 api mode,以此作为后端;前端选 angular ember react 其一,当作两个项目来开发,使用某种通讯方式进行数据交互。最简单的大概就这样吧,如果要加入其他如 es 这样的工具,那自然会复杂一点。不过接入方法都很成熟,搜索一下就能得到很多例子。
其实 Rails 开发者更多是前后端一起搞的,不过也可以和 java、php 一样来个前后端分离,目的说白了就是把前端的开发和后端 API 分开。前端可以选择 vue(个人推荐,可以看看 他们的对比)、react 或者 angular 之类的框架,后端提供 API。我们的做法(后端 PHP)是前端通过 nodejs 来做路由和视图渲染(至于为啥是 nodejs,可以看看阿里的那篇前后端分离文章,部分原因是因为它是用前端开发人员熟悉的 js 来写的)
另:angularjs 是 mvvm 框架,bootstrap 是 UI 框架,完全不是一码事
#3 楼 @hxh1246996371 大致明白了,那如果使用 Rails 来后端的话,这个 Api 这些怎么来提供呢?感觉和普通开发有很大不同 ( ・᷄ ᵌ・᷅ )
从你提问的内容和你看的书来看,目前你的能力做这样的架构未必能解决。如果你真想这么做的话,推荐仔细读完 rails5 api 的内容,angular2 的所有文档并且理解他奇奇怪怪设计模式的所有东西。不然你会遇到满满的坑,连环坑。
只用 ruby 写后端业务逻辑,然后前端用 node 来作,通过 API 接口和 ruby 项目来进行交互。推荐 sinatra 和 Grape。
接楼上,node 做为中间层,搭个 webpack 以及负责 view 层的渲染,后端 api 用什么都可以,中间层可以参考下:HackerNew Middle Layer
我们是分了两步走,最开始是把 js、css、image 这些资源从 Rails 抽离出去,抛弃了 asset pipeline 改用 webpack:https://ruby-china.org/topics/29630。最近开始弄 nodejs 的中间层,再把后端完全 API 化。
建议去读一下 discourse 项目的源代码,感受一下这种大型 Rails 项目中前后端分离的做法,并思考如何在自己的团队中设计并执行这种基于 Rails 的前后端分离项目的工作流程。
同时也建议参考Java、PHP甚至C#等技术平台的前后端分离做法,这样你会有更清晰的理解。