Есть ли прирост производительности при использовании ng-if-start вместо нескольких ng-if? - PullRequest
0 голосов
/ 26 июня 2018

Допустим, у нас есть следующая разметка:

<div ng-if="isVisible"></div>
<div ng-if="isVisible"></div>
...
<div ng-if="isVisible"></div>

Мы можем заменить его на:

<div ng-if-start="isVisible"></div>
<div></div>
...
<div ng-if-end></div>

Я предпочитаю второй способ, потому что он хранит код СУХОЙ.

Но мне интересно, а второй способ лучше с точки зрения производительности? Это может быть не так очевидно, как кажется, потому что angularJS может выполнить некоторую оптимизацию для нескольких ng-if с одним и тем же условием (это всего лишь мое предположение, не имеет представления, действительно ли это так).

Есть идеи? Не удалось найти информацию об этом.

1 Ответ

0 голосов
/ 15 июля 2018

Каждый ng-if, который вы используете, создает на заднем плане наблюдателя, который, если их у вас достаточно, повлияет на производительность.

В этом конкретном случае ng-if-start будет более производительным, поскольку будет создано меньше наблюдателей, и, следовательно, будет выполняться меньше работы.

В таких случаях я склонен использовать ng-switch, что особенно полезно, если вам нужно несколько if операторов. Это может уменьшить количество наблюдений по нескольким операторам if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...