2016-05-19 25 views
21

Sto lavorando con la demo Angular2 quick start utilizzando TypeScript. Tutto funziona perfettamente con questo, ma dopo il completamento della demo ho visto un messaggio nella mia console del browsercosa succede esattamente quando `enableProdMode()`

Angular 2 è in esecuzione in modalità di sviluppo. Chiama enableProdMode() per abilitare la modalità di produzione.

Ho fatto questo con l'aiuto di this answer.

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

enableProdMode(); 
bootstrap(AppComponent); 

Domanda

  1. Cosa succede esattamente quando app passaggio alla modalità di produzione?
  2. Non ho visto alcuna modifica nel comportamento dell'applicazione ad eccezione della rimozione del messaggio della console?

Qualcuno può spiegare per favore?

+2

Questa risposta di Günter soddisfa le vostre aspettative? http://stackoverflow.com/questions/34868810/what-is-diff-between-production-and-development-mode-in-angular2 –

+0

@ThierryTemplier Mi aspettavo questo quando abilita la modalità prod, ma il rilevamento delle modifiche era ancora in esecuzione dopo ' enableProdMode() '. Ho modificato un file dopo averlo abilitato, il browser si aggiorna automaticamente. –

risposta

2

Secondo angolare 2 Documentazione: https://angular.io/docs/ts/latest/api/core/index/enableProdMode-function.html

modalità di sviluppo della Disabilita angolare, che disattiva le asserzioni e gli altri controlli nel quadro.

Un'importante affermazione che disabilita verifica che un passaggio di rilevamento modifiche non comporti ulteriori modifiche a qualsiasi binding (noto anche come flusso di dati unidirezionale).

+1

Grazie. ma ancora rileva i cambiamenti. –

7

L'attivazione della modalità di produzione non disabilita il rilevamento delle modifiche. Questa funzione è la base di Angular2 per sincronizzare il modello con lo stato della classe associata.

Con la modalità di produzione, una sola corsa è fatto non due ...

+2

Mi dispiace ma non chiaro di più ... –

+1

Intendo dire che il rilevamento dei cambiamenti è sempre utilizzato sia in modalità dev che prod. In modalità dev, il rilevamento delle modifiche viene eseguito una volta e una seconda subito dopo. Il rilevamento delle modifiche viene attivato da ZoneJS. Forse questa meravigliosa risposta di Mark Rajcok potrebbe aiutarti a capire cosa succede sotto il cofano: http://stackoverflow.com/questions/34569094/what-is-theangular2-equivalent-to-an-angularjs-watch. Sono consapevole che non è così ovvio ;-) –

1

enableProMode

modalità di sviluppo della Disabilita angolare, che disattiva le asserzioni e gli altri controlli nel quadro.

Un'asserzione importante che disabilita verifica che un passaggio di rilevamento modifiche non comporti ulteriori modifiche a qualsiasi binding (noto anche come flusso dati unidirezionale ).

@stable

isDevMode

Indica se angolare è in modalità di sviluppo. Dopo aver chiamato una volta, il valore è bloccato e non cambierà più.

Per impostazione predefinita, questo è vero, a meno che un utente chiami enableProdMode prima di chiamare questo.

@ API sperimentali relative al bootstrap dell'applicazione sono attualmente sotto revisione .

+1

Forse puoi elaborarlo un po 'di più. – JiriS

Problemi correlati