当`enableProdMode()`时到底发生了什么

Jit*_*ari 32 typescript angular

我正在使用Angular2 quick startdemo进行演示TypeScript.一切都运行良好,但在完成演示后,我在浏览器控制台中看到了一条消息

Angular 2正在开发模式下运行.调用enableProdMode()以启用生产模式.

我在这个答案的帮助下做到了这一点.

import { bootstrap } from '@angular/platform-browser-dynamic';
import { AppComponent } from './app.component';
import { enableProdMode } from '@angular/core';

enableProdMode();
bootstrap(AppComponent);
Run Code Online (Sandbox Code Playgroud)

  1. 当应用程序进入生产模式时会发生什么?
  2. 除了删除控制台消息之外,我没有看到应用程序行为的任何变化

有人可以解释一下吗?

Thi*_*ier 8

启用生产模式不会禁用更改检测.此功能是Angular2的基础,可以将模板与关联类的状态同步.

在生产模式下,只进行一次运行而不是两次运行...

  • 对不起,但不清楚更多...... (8认同)
  • 我的意思是更改检测始终在开发和生产模式下使用。在开发模式下,更改检测运行一次,然后立即运行第二次。更改检测由 ZoneJS 触发。也许马克·拉吉科克(Mark Rajcok)的精彩回答可以帮助您了解幕后发生的情况:http://stackoverflow.com/questions/34569094/what-is-the-angular2-equivalent-to-an-angularjs-watch。我知道这并不那么明显;-) (2认同)

小智 5

enableProMode

禁用 Angular 的开发模式,这会关闭框架内的断言和其他检查。

这禁用的一个重要断言验证更改检测传递不会导致对任何绑定(也称为单向数据流)的额外更改。

@稳定的

isDevMode

返回 Angular 是否处于开发模式。调用一次后,该值被锁定,不会再改变。

默认情况下,这是真的,除非用户在调用它之前调用 enableProdMode。

@experimental 与应用程序引导程序相关的 API 目前正在审查中。

  • 也许你可以再详细一点。 (2认同)

小智 3

根据 Angular 2 文档:https://angular.io/docs/ts/latest/api/core/index/enableProdMode-function.html

禁用 Angular 的开发模式,这会关闭框架内的断言和其他检查。

此禁用的一个重要断言验证更改检测传递不会导致任何绑定(也称为单向数据流)的额外更改。