新手问题 对 Spine 的简单理解,求纠正

hpyhacking · 2012年08月27日 · 最后由 hpyhacking 回复于 2012年08月27日 · 2750 次阅读

最近在看一些 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 的目的。

只理解到这里,请各位也来补足以及纠正,谢谢。

基本是正确的。因为都是 JS 文件,所以你在页面用到的必须先预加载到内存空间。这是我写的一篇关于 Spine 的实际使用的 blog,http://blog.pragmatic.ly/a-practical-guide-to-use-spinejs-in-real-worl, 欢迎品鉴。

#1 楼 @yedingding 对于 js 的 template 处理 i18n 有什么推荐吗?

#2 楼 @hpyhacking 看你需不需要集成 rails。如果不需要,可以参考http://github.com/pragmaticly/smart-time-ago 的做法,简单说就是把 strings 剥离出来,然后用不同的 locales 对应的 JS 文件来加载。如果要集成 rails I18n 的做法,可以参考用 https://github.com/fnando/i18n-js

需要 登录 后方可回复, 如果你还没有账号请 注册新账号