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

5

标题已经非常自解释了。我想知道AngularJS是如何“知道”模型中的某些内容发生了变化,以便更新视图。

它所做的任何事情都不会影响一般性能吗?


https://www.ng-book.com/p/The-Digest-Loop-and-apply/ - tasseKATT
2个回答

2

AngularJS应用程序的生命周期有三个阶段,每次在浏览器中加载网页时都会发生。以下部分描述了AngularJS应用程序的这些阶段。
引导阶段 AngularJS生命周期的第一阶段是引导阶段,当AngularJS JavaScript库下载到浏览器时发生。AngularJS初始化自己必要的组件,然后初始化您的模块,ng-app指令指向该模块。加载模块,并将任何依赖项注入到您的模块中,并使其在模块内的代码中可用。
编译阶段 AngularJS生命周期的第二个阶段是HTML编译阶段。最初加载网页时,在浏览器中加载了DOM的静态形式。在编译阶段,静态DOM被替换为表示AngularJS视图的动态DOM。
此阶段涉及两个部分:遍历静态DOM并收集所有指令,然后将指令链接到AngularJS内置库或自定义指令代码中的适当JavaScript功能。将指令与作用域相结合以生成动态或实时视图。
运行时数据绑定阶段 AngularJS应用程序的最后一个阶段是运行时阶段,它存在直到用户重新加载或导航离开网页。此时,范围内的任何更改都会反映在视图中,视图中的任何更改都会直接更新到范围中,使范围成为视图的单一数据源。
AngularJS的行为与绑定数据的传统方法不同。传统方法将模板与从引擎接收的数据组合起来,每次数据更改时操作DOM。AngularJS仅编译DOM一次,然后根据需要链接已编译的模板,使其比传统方法更有效。

以下内容是从Brad Dayley的学习AngularJS书中无耻地抄袭。

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


1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接