全栈工程师,编程爱好者
博客
前端技术发展迅速,也伴随很多纷争。了解一门技术的起源、目的、结果,有助于我们更好的理解和应用它,有助于我们更好的规划学习路径。
jQuery 的优势
- 统一 DOM 和 Ajax API
- 创造很多高效用法
- 提供事件代理机制
- 提供简单又强壮的插件机制
- 语法容错性更好
jQuery 的问题
只关注 DOM 操作,对上规模的产品很无力。
- 应该提交哪些数据给服务器?
- 有数据,怎么还原出操作结果?
- 修改了 A 组件,B 组件要同步体现变化,怎么处理?
Backbone 是什么?
- MVP 框架
- View 视图 渲染,相应用户操作
- Collection/Model 数据模型 组织数据,和服务器交互
- Router 路由 在大型单页应用中提供全局定位
- 将业务抽象成数据操作
- 视图响应数据变化
Model 和 View 交互
- 用户操作视图
- 视图将用户操作的结果,以数据方式传给模型
- 模型向服务器同步数据
- 模型广播
change
事件
- 视图侦听到
change
时间,刷新
Collection 和 Model 的关系
- Model 是一个对象,比如“一名员工”
- Collection 是相同对象组成的集合,比如“全部员工”
- Collection 会代理 Model 的事件
视图同步
- 用户操作 A 视图
- A 试图讲数据发送给模型
- 模型修改,同步,并广播事件
- 所有侦听该模型的视图均得到更新
Backbone 的优势
- 各组件独立,耦合很低
- 开发维护成本得以大大降低
- 侵入性很低,可以很容易配合其它类库及框架
Backbone 的问题
- 没有数据双向绑定
- 只能全量更新
- 需要花费大量时间绑定事件
Vue 的优势
- MVVM 框架,数据双向绑定
- 丰富的模板语言,易读好写
- 组件系统开发大规模应用更有优势
总结
- 语言在发展,学习是必须的
- 项目的体量决定了不同技术选型之间的效率差别
- Vue 是个好东西,推荐给大家