- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在阅读这篇文章时对更改检测操作的工作原理感到困惑。 https://vsavkin.com/change-detection-in-angular-2-4f216b855d4c
Angular 表示它不进行脏检查,并且没有像 AngularJS 1.X 中那样的两个绑定(bind)和监视。然而,我从 Docs 和一些博客 + 堆栈中了解到,每个组件都有一个变化检测器。
然而,从这个堆栈溢出@Gunter 的响应在这里:Understanding change detection in angular 2
With ChangeDetectionStrategy.OnPush Angular runs change detection, when in @Input() was updated, a DOM event Angular listens to was received, or the async pipe (| async) received a new value.
我知道它有一个监听器,它监听 Angular 每一个变化。其次,如果我使用 runOutsideAngular,它不会在该组件或操作上创建变化检测器对象吗?
Other cases are if you explicitly (this.zone.runOutsideAngular()) or for some other reasons code runs outside Angulars zone modifies the status of the component, this also won't be covered (even when the code is an event handler).
变化检测器生命周期的小子问题:
问题一:是观察者还是事件监听者?
问题 2:这是否意味着无论我们使用 changeDetectorStartegy.onPush 还是 .Default,每个组件都有一个事件的变化检测器对象?
问题 3:如果我在 Angular 应用程序中有 1000 个组件对象,那么这些变化检测器对象对每个组件实现有什么影响?特别是对于应用程序的内存配置文件
问题 4:如何管理它,使其不影响浏览器中应用程序的内存配置文件
问题 5:是否有一个地方/资源可以让我获得变化检测器和 ngZone 关联的生命周期?
Update: Request someone that rather than marking this question forclose I would recommend answering a serious question. I appreciateyour help understanding underlying working concepts.
最佳答案
这是一个相当广泛的问题 - 这两篇文章应该能让您很好地理解:
Question 1: Is it that there is an observer or is it an event listener?
Question 2: Does it mean that there is an active change detector object for every component whether we use changeDetectorStartegy.onPush or .Defau
不,变化检测器不是监听器。 Angular 中的每个组件都表示为一个 View 。因此,应用程序是一棵 View 树。当您在组件中注入(inject) ChangeDetectorRef 时,您实际上是在围绕该 View 注入(inject)一个包装器。每个 View 都有一个状态,该状态指示是否应检查此 View 上的绑定(bind)。 OnPush 只是将此状态设置为 disabled
,因此不会对 View /组件执行任何检查。如果绑定(bind)发生变化,那么 Angular 会将状态设置为 CheckOnce,以便在下一次绑定(bind)发生变化之前只检查一次 View 。
Question 3: What is the impact of these change detector objects in each component implementation if I have 1000 component objects within Angular application? Especially for the memory profile of the application
Question 4: How do I manage it so that it does not impact the memory profile of the application in the browser
正如我上面所解释的,没有独立的变化检测器这样的东西。它是 View 的包装器。 View 无论如何都存在,因为它是 Angular 在底层表示组件树的方式。
Is there a place/resource where I can get the lifecycle of the change detector and ngZone associated?
变化检测器没有生命周期这样的东西。
关于javascript - Angular 中的变更检测 API 底层架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44298214/
我有一个相当简单的 iPhone 应用程序,它将一组 UITableView 结果下载到其模型类中,以及一个设置为观察这些更改的 View Controller using KVO . 这个系统运行良
我们的一名团队成员(位于不同地区)已搁置 P4 中的更改,更改列表为 1234。 现在,如果我想查看 snf 修改了哪些文件,有哪些更改,我该怎么做? 我应该使用什么 P4 命令来查看我们的团队成员所
有没有办法获取特定分支的特定变更列表之后的变更列表列表? p4 changes (some flag ?) (CL#) //depot/project 最佳答案 这可以使用以下语法来完成(假设您想查看
我是 drupal 的新手,但学得很快。我有 drupal 7,我正在努力创建一个基于 Zen 的 starterkit 子主题的主题。我正在尝试找到可以自定义“提交者”行的位置。 默认情况如下: 由
我正在尝试将附件的 ShareKit API 代码更改为以下代码: dialog.attachment = [NSString stringWithFormat:@"{\"name\":\"%@\",
所以我的理解是,在 symfony 开发环境中,如果 use_controller 设置为 true,则 Assets 是通过 Controller 在页面加载时生成的。 然而,这非常耗时,并且将其设
我正在编写一个程序,它需要了解一台机器的所有 IP 地址,并且数据包通过它们的连接进行传输。我可以在运行主程序之前使用“gethostbyname”获取 IP 列表,但是如果之后有任何 IP 可用怎么
我很好奇是否有人可以概述服务器端哪些类型的 WCF 合约(接口(interface))更改会破坏尝试发送消息的客户端,以及原因。我相信 WCF 可以处理某些差异,但我不确定您可以安全地更改哪些内容以及
在 AngularJS 中,创建和使用自定义服务进行 DOM 操作并在 UI 的不同部分共享相同的功能是一种常见的做法,我的问题也与此案例相关,如下所示: 我的应用程序中有一个侧边栏组件和一个用于最小
我尝试使用像 WPF-MVVM 这样的 Knockout。 在 WPF 中,有一个选项可以在属性更改时通知虚拟机。 例如:如果我有一个文本框,我可以使用 UpdateSourceTrigger=Pro
我需要一些使用 Apollo 2.1 中新的查询和突变组件的帮助,尤其是多个查询和突变。 我有以下问题: 我有一个 graphql 请求,该请求依赖于之前的 graphql 结果,我该如何处理这个问题
Paypal 似乎已经改变了他们的 IPN 测试界面。 (将 IPN 欺骗到您的 IPN 页面以进行测试。 以下是我现在从IPN收到的数据。 KEY: receipt_ID - VALUE: KEY:
从雅虎财经请求数据似乎已经改变或现在被阻止。以下商品数据请求自 2017 年 5 月起不再有效。有谁知道是否有新的方式来提出此请求? http://chartapi.finance.yahoo.c
In this post他们在 LinkedIn 上提到开放 API 仍将支持与公司 API 共享内容,但如果您进一步查看他们的 Developer Program Transition Guide他
我对 Xcode 很陌生,我想在添加可能会破坏我的项目的更改之前弄清楚版本控制。我正在单独处理这个项目,并且在我的 mac 上保存了一个 Git 存储库,所以我认为我不需要将它与 GitHub 帐户链
我是一名优秀的程序员,十分优秀!