По какой-то причине я должен запустить свое приложение в рабочем режиме. В чем разница между этими режимами?В чем разница между режимом производства и разработки в Angular2?
ответ
В режиме разработки обнаружение изменений выполняет второй запуск сразу после первого запуска и выдает ошибку, если какое-либо связанное значение изменилось между первым и вторым запуском. Это помогает найти ошибки, при проверке значений которых есть побочные эффекты или поля или функции, не возвращают одно и то же значение при последующих вызовах, которые подрывают обнаружение изменений Углового.
В режиме разработки во время второго запуска обнаружения изменений Угловой также выполняет некоторые глубокие сопоставления объектов, которые он не будет выполнять в производстве, для обнаружения изменений модели, которые запрещены.
Update:
В режиме разработки, намек также выводятся на консоль, когда HTML дезинфицирующей службы полосок из значений привязок [innerHTML]="..."
или [ngStyle]="..."
. Смотрите также: In RC.1 some styles can't be added using binding syntax
Документах для ApplicationRef.tick() состояния:
В режиме разработки
tick()
также выполняет второй цикл обнаружения изменения (TTL = 2), чтобы гарантировать, что никаких дальнейших изменений не обнаружено. Если во время этого второго цикла будут получены дополнительные изменения, привязки в приложении будут иметь побочные эффекты, которые не могут быть разрешены в одном проходе обнаружения изменений. В этом случае Angular выдает ошибку, так как угловое приложение может иметь только один проход обнаружения изменений, в течение которого все изменения должны быть завершены.
Причина, по которой мы не можем иметь дополнительных изменений, заключается в том, что в режиме производства обнаружение изменений выполняется только один раз, что означает, что каждый компонент в дереве компонентов рассматривается один раз (TTL = 1) ... из сверху, в глубине-первом порядке. Итак, если, например, изменение входного свойства дочернего компонента вызывает изменение какого-либо другого свойства, которое родительский компонент связал в представлении/шаблоне, представление родительского компонента не будет обновляться (поскольку обнаружение изменений выиграло ' t пересмотреть родительский компонент в режиме производства ... из-за обхода дерева «один проход»). Он будет обновляться только в следующий раз, когда произойдет какое-то событие, и повторное обнаружение снова запустится - но это уже слишком поздно!
Plunker, который нарушает правило –, дочерний компонент имеет метод set
для свойства ввода, которое модифицирует другое свойство ввода. Да, это надуманный пример, но его легче понять, чем следующий:
Другой сценарий, в котором вы можете столкнуться с этой проблемой, - это трубы с поддержкой состояния. Проверьте this answer, если это ваша проблема.
Вы должны описать вашу проблему (в другом вопросе SO). Должен быть способ исправить это.
- 1. В рельсах какая разница между режимом разработки и режимом производства?
- 2. Дифференциация между режимом размещения и режимом разработки
- 3. Разница между режимом хоста/разработки и веб-режимом в GWT
- 4. В чем разница между режимом программирования и режимом прошивки?
- 5. В чем разница между двоичным режимом MD5 и текстовым режимом?
- 6. В чем разница между спящим режимом и режимом глубокого сна?
- 7. В чем разница между режимом предварительного просмотра и режимом работы в LUIS?
- 8. В GSOAP, в чем разница между режимом клиента и сервера?
- 9. В чем разница между Angular2-all.umd.js и angular2.js
- 10. В чем разница между Spark Standalone, YARN и локальным режимом?
- 11. В чем разница между компиляцией debug = "false" и режимом Release?
- 12. Какая разница между псевдорежимным режимом и автономным режимом в hadoop?
- 13. Разница между текстовым режимом и двоичным режимом в c
- 14. В чем разница между «режимом quirks» и «режимом совместимости» в IE?
- 15. В чем разница между скобками, скобками и звездочками в Angular2?
- 16. В чем разница между OnPushObserve и OnPush в Angular2?
- 17. В чем разница между router.navigate и router.parent.navigate в Angular2?
- 18. В чем разница между @Input и входами в компонентах Angular2?
- 19. В чем разница между AfterContentChecked и AfterViewChecked в Angular2?
- 20. разница между реальным режимом и защищенным режимом на архитектуре x64
- 21. В чем разница между режимом совместимости IE11 и режимом совместимости с IE10
- 22. В чем разница между режимом пользователя/ядра и защищенным/реальным режимом? Они одинаковы?
- 23. Angular2 разница между @ угловой/и angular2/импорта
- 24. В чем разница между ngOnInit и ngAfterViewInit от Angular2?
- 25. В чем разница между функцией Angular2 @Injectable и non-инъекцией
- 26. В чем разница между iPhone и iPod для разработки?
- 27. Разработка iPhone - в чем разница между подготовкой разработки и распределения?
- 28. В чем разница между типами ветвей разработки и типа?
- 29. Внесинхронные миграции между средами разработки и производства
- 30. Разница между ViewProviders и службами в Angular2?
Как определить, запущен ли я в режиме производства или в режиме разработки? –
Я уже видел это, но я не видел ответа. Вам нужно включить режим работы явно, и вы также можете установить некоторую глобальную переменную, когда вы включите prodMode, который можно проверить в вашем коде, чтобы узнать, какой режим активен. –
Кроме того, если вы работаете в режиме dev и открываете консоль в своем браузере, у него будет напечатанное сообщение, в котором говорится, что «Angular 2 работает в режиме разработки». Позвоните enableProdeMode(), чтобы включить режим производства.«Если вы уже находитесь в режиме производства, вы ничего здесь не увидите. –