В angularjs, что такое двойное двоеточие ::
перед переменной выражения и в чем разница между {{ firstName }}
и {{ ::firstName }}
?
Что делает двойной двоеточие перед переменной выражения в angular js?
Ответ 1
Взято из: https://www.binpress.com/tutorial/speeding-up-angular-js-with-simple-optimizations/135
Он гласит:
Синтаксис одноразового связывания
{{ ::value }}
AngularJS недавно бросил интересную функцию в бета-версии версия 1.3.0: возможность визуализации данных один раз и пусть это сохраняется без влияния будущих обновлений модели. Это фантастические новости для разработчиков, очень заинтересованных в производительности! До этого обновления, wed обычно выводит значение в DOM так:
<h1>{{ title }}</h1>
С новым одноразовым синтаксисом мы вводим двойную двоеточие перед нашим значением:
<h1>{{ ::title }}</h1>
Angular обрабатывает DOM как обычно, и как только значение было решил удалить конкретное свойство из своего внутреннего
$$watchers
. Что это значит для производительности? Много! Это фантастическое дополнение, помогающее нам точно настраивать наши приложения.Известно, что Angular становится медленнее с примерно 2000 привязками к процессу за грязной проверкой. Чем меньше мы можем добавить к этому ограничьте лучшее, поскольку привязки могут складываться без нас, действительно замечающих это!
Использование синтаксиса одиночного связывания является простым и, самое главное, быстрым. Синтаксис ясен и краток, и реальная польза от
$$watcher
служебные данные. Чем меньше работы Angular, тем больше наши приложения станут доступными.