Angular js (Angular.JS) 是一组用来开发Web页面的框架、模板以及数据绑定和丰富UI组件。它支持整个开发进程,提供web应用的架构,无需进行手工DOM操作。 AngularJS很小,只有60K,兼容主流浏览器,与 jQuery 配合良好。双向数据绑定可能是angularjs最酷最实用的特性,将MVC的原理展现地淋漓尽致.
AngularJS的工作原理是:HTML模板将会被浏览器解析到DOM中, DOM结构成为AngularJS编译器的输入。AngularJS将会遍历DOM模板, 来生成相应的NG指令,所有的指令都负责针对view(即HTML中的ng-model)来设置数据绑定。因此, NG框架是在DOM加载完成之后, 才开始起作用的.
Angular并不是周期性触发脏检查。
为什么叫脏检查? 对脏数据的检查就是脏检查,比较UI和后台的数据是否一致!
简单理解,一次脏检查就是调用一次
apply()或者
digest(),将数据中最新的值呈现在界面上。
而每次 UI 事件变更,ajax 还有 timeout 都会触发 $apply()。
VueJS 则使用 ES5 提供的 Object.defineProperty() 方法的getter和setter 结合观察者模式(watcher,dep,observer)
监控对数据的操作,从而可以自动触发数据同步。并且,由于是在不同的数据上触发同步,可以精确的将变更发送给绑定的视图,而不是对所有的数据都执行一次检测。