Nedense uygulamamı üretim modunda çalıştırmam gerekiyor. Bu modlar arasındaki fark nedir?
Nedense uygulamamı üretim modunda çalıştırmam gerekiyor. Bu modlar arasındaki fark nedir?
Yanıtlar:
Geliştirme modunda, değişiklik algılama, ilk çalıştırmadan hemen sonra ikinci bir çalıştırma yapar ve birinci ile ikinci çalıştırma arasında herhangi bir sınır değer değiştiyse bir hata oluşturur. Bu, kontrol değerlerinin yan etkilere sahip olduğu veya alanların veya işlevlerin Angular'ın değişiklik algılamasını baltalayan sonraki çağrılarda aynı değeri döndürmediği hataları bulmaya yardımcı olur.
Geliştirme modunda, ikinci değişiklik algılama çalışması sırasında Angular, izin verilmeyen model değişikliklerini tespit etmek için üretimde yapmayacağı bazı derin nesne karşılaştırmaları da yapar.
Güncelleme:
Geliştirme modunda, HTML dezenfektanı hizmeti bağlamalardan [innerHTML]="..."
veya [ngStyle]="..."
. Ayrıca bakınız: RC.1'de bazı stiller bağlama sözdizimi kullanılarak eklenemez
ApplicationRef.tick () durumu için belgeler :
Geliştirme modunda,
tick()
daha fazla değişikliğin algılanmamasını sağlamak için ikinci bir değişiklik algılama döngüsü (TTL = 2) gerçekleştirir. Bu ikinci döngü sırasında ek değişiklikler alınırsa, uygulamadaki bağlamaların tek bir değişiklik algılama geçişinde çözülemeyen yan etkileri vardır. Bu durumda, Angular bir hata atar, çünkü bir Angular uygulamasında tüm değişiklik tespitinin tamamlanması gereken tek bir değişiklik algılama geçişi olabilir.
Ek değişiklik yapamamamızın nedeni, üretim modunda değişiklik tespitinin yalnızca bir kez çalışmasıdır; bu, bileşen ağacındaki her bileşenin bir kez (TTL = 1) ... üstten, derinlemesine inceleneceği anlamına gelir. sipariş. Dolayısıyla, örneğin, bir alt bileşenin input özelliğinde yapılan bir değişiklik, bir görünümde / şablonda üst bileşenin bağladığı başka bir özellikte bir değişikliğe neden olursa, üst bileşenin görünümü güncellenmez (çünkü değişiklik algılama, "tek geçişli" ağaç geçişi nedeniyle üretim modunda ana bileşen). Yalnızca bir sonraki sefer meydana geldiğinde güncellenecek ve değişiklik algılama tekrar çalıştırıldığında - ama bu çok geç!
İşte kuralı ihlal eden bir Plunker - bir alt bileşenin set
bir input özelliğinde başka bir input özelliğini değiştiren bir yöntemi vardır . Evet, uydurma bir örnek ama anlaşılması bir sonrakinden daha kolay:
Bu sorunla karşılaşabileceğiniz başka bir senaryo, durum bilgisi olan borularla ilgilidir. Check out Bu cevabı bu senin sorunun buysa.
Probleminizi tanımlamalısınız (başka bir SO sorusunda). Düzeltmenin bir yolu olmalı.