最近在看一些 Spine 与 Rails 结合开发 Web App 的内容,一直做 Server Render 的模式第一次接触 Spine 还真有点晕,但已经下定决心将现有 App 改为 Spine,下面说说这两天看文档的结果。
Spine 跟 Rails 非常相似,MVC 分的很清楚,都有自己要干的事情:
Model: 负责数据层面的事情,与 Rails 的 ActiveModel 的操作类似,公开很多事件,例如 refresh create 等等。
View: 负责界面显示,心理一直有个疑问,也是由原来 Server Render 导致的,就是一开始真的要把所用到的所有 Template 传到 Client 吗?看来是这样的,所有的模版需要一次性的被加载到客户端,供别人用于 Render。
Controller: 这个是我理解上最大的障碍,道理一样让 Server Controller 给阻碍了。其实 Spine 的 Controller 挺简单,每个 C 的实例会被绑定到一个 el(html element),接着对内部元素进行事件绑定,通过这些事件的驱动来操作 M 或者创建其他的 C,除了对下级 el 的事件绑定还可以绑定之前 Model 提到的那些事件。C 实际上是对 M 与 V 起链接作用。
每个 Single Page App 启动后,会将启动一个或者多个 C 来绑定到不同的初始 el 上,然后执行对 render 的操作,通过组织不同的 C 来达到驱动 App 的目的。
只理解到这里,请各位也来补足以及纠正,谢谢。