没从 C++/Java 学起, 对 MVC 和面向对象的理解还是后来慢慢积累起来的
相对我觉得脚本语言各种范式各种灵活, 只是缺少面向对象组织代码的整齐呆板
而且从前使用 DOM API 时候就觉得 DOM 就像一种数据类型,
JS 操作数据同时, 也在更改界面. 通过直接访问界面, 也能读取数据, 很强大对吧
但我接触 Backbone 一段时间, 困惑也觉得越来越多
而从前灵活解决前端问题的思路, 随着 MVC 提出的分离有了各种阻碍, 或者不方便直接 JS DOM 操作吧
MVC 在 Backbone 里是 Model 和 View-Controller 两者分离, 另加上 Collection.
每次 Model(Collection) 发生改变, View 重新渲染一次, 然后搞定
或者 DOM 上的事件从 Controller 传到 Model 里进行一次改变, View 跟着改变好
这样其实 jQuery 丰富的 DOM 操作就显得无所用处
如果在 Backbone 的应用里加上大量的 DOM 操作, View 刷新时又变得尴尬
为了性能, JS 在进行 DOM 操作时会讲操作全在 HTML 字符串里存储好, 一次写入
可在 Backbone 里, 如果小的 item 也是 Model, 那么 render 也是分开了自己做的
我理解, 这样两者就不能够很好地兼容, 至少有一个方面要打折扣了
另一个功能是实时保存和更新, 纯的 DOM 操作, JS 监听 DOM, 在背后保存数据很简单
一只萌萌小番薯
繁星淼淼