框架(Framework) V.S. 库(Library)
MVC框架:
你,给我建立一个 M,再建立一个 V,
再建立一个 C,然后想办法把他们联系起来
库:
嗨,我这里有大号扳手、中号扳手、小号扳手,
您需要哪个您说话
框架:给你提供一套思维方式和代码模板,让你做事更无脑(也不需要动脑);
如 Backbone 教你 MVC,Angular 教你 MVVM,React 教你 Flux……
库:给你提供帮助,没有明显的思路偏好,你愿意怎么用怎么用;
如 jQuery 用来操作 DOM,Underscore 用来操作数据……
框架的学习方法:读文档
库的学习方法:读文档
2. 然后直接做一个项目,边做边看文档。
3. 学得差不多了,就可以把这个做坏了的项目遗弃/重写。
4. 就可以开始做公司的项目了。
2. 直接用
没有文档?不用。
P.S. 关于公司不让用 jQuery
1. 如果不用 jQuery,那么必须有一个跟 jQuery 功能差不多的代替品
(私有的代替品终将会被开源社区的产品取代)
2. 如果你公司连代替品都没有,那么你要弄出一个代替品(自己写或用开源的),才能节约自己的时间
MVC、MVVM、D+S+V 等,都是设计模式而已
用这个框架,你就要先了解这种模式。
提供:
数据类 - Backbone.Model & Backbone.Collection
视图类 - Backbone.View
路由类 - Backbone.Router
事件系统、面向对象
依赖:
jQuery、Underscore
MVVM
开发者只需要负责 View 和 Model,其他事情都交给 VM 来处理
不需要自己监听事件,不需要自己更新 DOM
JSX
var Nav;
// Input (JSX):
var app = <Nav color="blue" />;
// Output (JS):
var app = React.createElement(Nav, {color:"blue"});
var Nav, Profile;
// Input (JSX):
var app = <Nav color="blue"><Profile>click</Profile></Nav>;
// Output (JS):
var app = React.createElement(
Nav,
{color:"blue"},
React.createElement(Profile, null, "click")
);