最近我发现了一个很棒的库,允许在Angular应用程序中使用React组件,称为 ngReact
我的问题是关于可以在reactDirective组件上声明的 watch-depth 属性:
$ echo $((9001+$(($newindex*2))))
bash: *2: syntax error: operand expected (error token is "*2")
$ newindex=4
$ echo $((9001+$(($newindex*2))))
9009
查看 reactDirective service 的ngReact文档,我发现watch-depth有3个可能的值:
在我使用ngReact的初步探索中,我一直坚持使用默认的值选项。
我的问题是,这些类型之间有什么区别?
每种手表深度类型理想使用的简单示例都很棒!
答案 0 :(得分:4)
答案与角度$ watch的工作原理有关。有3种方式角度应用$ watch:参考,收集,价值(正如你已经提到的)。
参考:
Reference会查看值的引用,并且只会在该引用发生更改时注册更改(并导致重新呈现)。这是最便宜的手表类型。 参考变更的例子:
$scope.userArray = newUserArray
收集:
深度收集手表的深度。它将在集合中查看。如果Watch By Reference被触发,或者在集合中添加,删除或重新排序新项目,它将注册更改。
$scope.userArray.push(newUser);
值:
手表深度价值是最贵的。它将观察集合中的值。如果Watch By Reference被触发,如果Watch By Collection被触发,或者集合中的值发生变化,它将注册更改。
$scope.userArray[0].age = 32;
这个答案深受Tero Parviainen撰写的精彩文章的启发, https://teropa.info/blog/2014/01/26/the-three-watch-depths-of-angularjs.html