Angularjs(1.x)和Angular(2+)数据脏检测之间的区别

转2篇个人认为写的很好的:

Angularjs(1.x)  http://www.cnblogs.com/likeFlyingFish/p/6183630.html

Angular(2+)  https://blog.csdn.net/u011256637/article/details/71056731?utm_source=itdadao&utm_medium=referral

以及总结:(原出处:https://blog.angular-university.io/how-does-angular-2-change-detection-really-work/ )

The Angular default change detection mechanism is actually quite similar to Angular 1: it compares the values of templates expressions before and after a browser event to see if something changed. It does so for all components.

But there are also some important differences:

For one there are no change detection loops, or a digest cycle as it was named in Angular 1. This allows to reason about each component just by looking at its template and its controller.

Another difference is that the mechanism of detecting changes in a component is much faster due to the way change detectors are built.

Finally and unlike in Angular 1, the change detection mechanism is customizable.

附翻译:

Angular 默认更改检测机制实际上与Angular 1非常相似:它比较浏览器事件之前和之后的模板表达式的值,以查看是否有更改。它适用于所有组件。

但也存在一些重要的差异:

对于一个没有变化检测循环,或者在Angular 1中命名的脏值循环。这允许仅通过查看其模板及其控制器来推断每个组件。

另一个不同之处在于,由于构建变化检测器的方式,检测组件中的变化的机制要快得多。

最后,与Angular 1不同,更改检测机制是可定制的。

原文地址:https://www.cnblogs.com/jimaww/p/9922882.html

时间: 2024-11-05 16:04:21

Angularjs(1.x)和Angular(2+)数据脏检测之间的区别的相关文章

我的angularjs源码学习之旅3——脏检测与数据双向绑定

前言 为了后面描述方便,我们将保存模块的对象modules叫做模块缓存.我们跟踪的例子如下 <div ng-app="myApp" ng-controller='myCtrl'> <input type="text" ng-model='name'/> <span style='width: 100px;height: 20px; margin-left: 300px;'>{{name}}</span> </di

大数据与云计算之间的区别与联系

大数据是什么? 在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的<大数据时代>中提出:大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理. 那么究竟多大的数据算是大数据,这个其实并没有明确的定义.不过IBM提出了大数据的5V特点:Volume(大量).Velocity(高速).Variety(多样).Value(低价值密度).Veracity(真实性).这也是目前大家比较公认的大数据的特征. 这个5V的特点,反映了大数据数据量大.产生的速度快且多样,同时大数据具有低价值密度的

AngularJS中使用$http对MongoLab数据表进行增删改查

本篇体验使用AngularJS中的$http对MongoLab数据表进行增删改查. 主页面: <button ng-click="loadCourse()">Load Course</button> <button ng-click="toggleAddCourse(true)">Add New Course</button> <ng-includce src="'course_list.html'&q

AngularJS快速入门指南14:数据验证

thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table.reference>thead>tr>td, table.reference>tbody>tr>td, table.reference>tfoot>tr>td { padding: 8px; line-height: 1.42857143; vertic

Vue.js与angular在数据实现的思考

Vue.js,其简洁的API以及活跃的社区,对于打算从angular转向Vue还是挺友好的,打算最近一段时间去整理下Vue自己的一些思考,加深下对于此的印象. Vue与Angular同属于MVVM框架,MVVM的本质是通过数据绑定链接View和Model,让数据的变化自动映射为视图的更新.Vue.js在数据绑定的API设计上借鉴了Angular的指令机制:用户可以通过具有特殊前缀的HTML 属性来实现数据绑定,也可以使用常见的花括号模板插值,或是在表单元素上使用双向绑定: <!-- 指令 -->

通过AngularJS实现前端与后台的数据对接(二)——服务(service,$http)篇

基础知识 1.service(): 使用service()可以注册一个支持构造函数的服务,它允许我们为服务对象注册一个构造函数. service()方法接受两个参数:   ? name(字符串) 要注册的服务名称. ? constructor(函数) 构造函数,我们调用它来实例化服务对象. 2.$http(): 使用$http()服务可以将应用同来自远程服务器的信息集成在一起. $http服务是只能接受一个参数的函数,这个参数是一个对象,包含了用来生成HTTP请求的配置内容.这个函数返回一个pr

后端接收不到AngularJs中$http.post发送的数据的问题

1.问题: 后端接收不到AngularJs中$http.post发送的数据,总是显示为null 示例代码: $http.post(/admin/KeyValue/GetListByPage, { pageindex: 1, pagesize: 8 }) .success(function(){ alert("Mr靖"); }); 代码没有错,但是在后台却接收不到数据,这是为什么呢? 用火狐监控:参数是JSON格式 用谷歌监控:传参方式是request payload 可以发现传参方式是

Angular 请求数据

Angular 请求数据 get post 以及 jsonp 请求数据 引入 HttpModule .JsonpModule 普通的 HTTP 调用并不需要用到 JsonpModule,不过稍后我们就会延演示对 JSONP 的支持,所以现在就加载它,免得再回来浪费时间. 引入模块 注意:JSONP 在4版本以后已经被弃用了... import { HttpClientJsonpModule, HttpClientModule } from '@angular/common/http'; 在 im

AngularJS的核心对象angular上的方法全面解析(AngularJS全局API)

总结一下AngularJS的核心对象angular上的方法,也帮助自己学习一下平时工作中没怎么用到的方法,看能不能提高开发效率.我当前使用的Angularjs版本是1.5.5也是目前最新的稳定版本,不过在全局API上,版本不同也没什么区别. AngularJS 全局 API列表 element bootstrap copy extend merge equals forEach noop bind toJson fromJson identity isUndefined isDefined is