首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AngularJS如何“监听”模型中的变化?

问AngularJS如何“监听”模型中的变化?
EN

Stack Overflow用户
提问于 2015-12-30 04:15:12
回答 2查看 277关注 0票数 3

标题几乎不言自明。我想知道为了更新视图,AngularJS是如何“知道”模型中的某些更改的。

无论它正在做什么,以实现这一点。它不会影响总体性能吗?

EN

回答 2

Stack Overflow用户

发布于 2015-12-30 04:32:05

William Moss去年就Angular的$watch进程及其对性能的影响做了一次精彩的演讲。强烈推荐!请在此处查看talk:https://www.youtube.com/watch?v=wbcJfg-d5nI

票数 1
EN

Stack Overflow用户

发布于 2015-12-30 04:43:21

每次在浏览器中加载网页时,AngularJS应用程序的生命周期都会经历三个阶段。以下各节描述了AngularJS应用程序的这些阶段。

引导阶段

AngularJS生命周期的第一个阶段是引导阶段,该阶段在将AngularJS JavaScript库下载到浏览器时发生。AngularJS初始化它自己的必要组件,然后初始化ng-app指令所指向的模块。模块被加载,任何依赖项都被注入到模块中,并可供模块内的代码使用。

编译阶段

AngularJS生命周期的第二个阶段是HTML编译阶段。最初,当加载网页时,DOM的静态形式被加载到浏览器中。在编译阶段,静态DOM被替换为表示AngularJS视图的动态DOM。

此阶段包括两部分:遍历静态DOM并收集所有指令,然后将指令链接到AngularJS内置库或自定义指令代码中的适当JavaScript功能。指令与作用域相结合,以生成动态或实时视图。

运行时数据绑定阶段

AngularJS应用程序的最后一个阶段是运行时阶段,该阶段一直存在,直到用户重新加载或离开网页。此时,范围中的任何更改都会反映在视图中,而视图中的任何更改都会直接在范围中更新,从而使范围成为视图的单一数据源。

AngularJS的行为与绑定数据的传统方法不同。传统方法将模板与从引擎接收的数据组合在一起,然后在每次数据更改时操作DOM。AngularJS只编译一次DOM,然后根据需要链接编译后的模板,这使得它比传统方法更有效。

不知羞耻地从布拉德·戴利的“Learning AngularJS”一书中抄袭过来。

这个过程在Angular站点的Scope Life Cycle部分中有详细介绍。请向下滚动到“Scope Life Cycle”部分。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34518361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档