Подтвердить что ты не робот

Какова цель функции ionViewDidLoad()?

При запуске ionic g page pageName я получаю сгенерированные файлы .ts,.css и .html.

Внутри .ts файла у меня есть функция с именем ionViewDidLoad(){}, и это будет напечатано до появления моего представления.

Это можно сделать в самом конструкторе, я верю?

Может кто-нибудь дать мне ссылку на любой блог или объяснение об этой функции?

4b9b3361

Ответ 1

Вы правы, многое может быть сделано как в конструкторе, так и в ionViewDidLoad, и результат будет таким же...

Но основное различие между constructor и ionViewDidLoad заключается в том, что constructor будет выполняться только один раз (когда компонент будет создан), но будет выполняться ionViewDidLoad каждый раз отображается представление (загружено).

Например, если вы хотите загрузить данные из удаленного источника данных, если вы сделаете это в конструкторе, данные будут получены только один раз. Если бы эти данные могли быстро меняться, лучшим способом было бы получить его в методе ionViewDidLoad, чтобы быть уверенным, что каждый раз, когда страница загружается, последние данные получаются и отображаются в представлении.

Еще один важный факт о ionViewDidLoad заключается в том, что иногда вы хотите взаимодействовать с DOM (возможно, для инициализации карты).

В этом случае, если вы попытаетесь получить доступ к DOM в конструкторе, вы заметите, что DOM не готов к этой точке, и вы не сможете получить элемент карты. Правильный подход для этого был бы внутри ionViewDidLoad, потому что в этот момент (как и название говорит) представление уже загружено и DOM теперь доступен.

UPDATE:

Так же, как @graphefruit, указанный в комментарии ниже, в новейших версиях Ionic 2, ionViewDidLoad просто срабатывает, если страница не кэшируется. ionViewWillEnter или ionViewDidEnter будут запускаться каждый раз при вводе страницы.

Ответ 2

constructor вызывается прежде всего, один раз для каждого экземпляра страницы, здесь вы можете выполнить инициализацию, которая не ссылается на HTML DOM

ionViewDidLoad вызывается, когда DOM страницы загружен, до того, как страница показывается, также один раз за создание экземпляра страницы, здесь вы можете выполнить инициализацию, когда HTML DOM должен быть готов

ionViewWillEnter вызывается непосредственно перед отображением страницы, возможно, несколько раз, если страница переходит в фоновый режим и возвращается, здесь вы можете обновить данные, если их можно изменить на другой странице.

ionViewDidEnter - это то же самое, но вызывается сразу после показа страницы, возможно, несколько раз, если страница переходит в фоновый режим и возвращается, например, вы можете отобразить предупреждение, как только страница окажется перед