2015-11-20 16 views
4

最近我發現一個真棒庫,允許反應的組分在角應用中使用,稱爲ngReactngReact:手錶深入屬性類型解釋

我的問題是關於手錶深入屬性,可以一個reactDirective組件上宣佈:

<body ng-app="app"> 
    <div ng-controller="helloController"> 
    <hello-component watch-depth="reference" fname="person.fname" lname="person.lname"></hello-component> 
    </div> 
</body> 

看着ngReact文檔的reactDirective service我看到有3個可能的值表德PTH:

  • 參考
  • 收集
  • 價值

在我最初的勘探使用ngReact我一直堅持使用默認值選項

我的問題是,這些類型之間有什麼區別?

當每種手錶深度類型是理想使用的簡單例子將是偉大的!

回答

2

答案與角度的$ watch有什麼關係。有3種方式應用$ watch:引用,集合,值(正如您已經提到的)。

參考:

參考着眼於一個值的參考,並且將僅註冊的變化(並導致重新呈現)如該參考變化。這是最便宜的手錶類型。基準變化 例如:

$scope.userArray = newUserArray 

收集:

收集的手錶深度是更深入。它會在收藏中看到。如果Watch By Reference已觸發,或者如果在集合中添加,刪除或重新排序新項目,它將註冊更改。

$scope.userArray.push(newUser); 

值:

有價手錶的深度是最昂貴的。它會觀看集合中的值。如果Watch By Reference會觸發,Watch By Collection會觸發,或者集合內的值發生更改,它將註冊一個更改。

$scope.userArray[0].age = 32; 

這個答案在很大程度上受泰羅Parviainen的撰寫一篇優秀文章的啓發, https://teropa.info/blog/2014/01/26/the-three-watch-depths-of-angularjs.html