最近,我发现了一个很棒的库,它允许在角应用程序中使用React组件,称为ngReact。
我的问题是关于可以在组件上声明的监视深度属性:
<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服务,我发现有3个可能的值用于观察深度:
在我使用ngReact的初始探索中,我一直坚持使用默认的值选项。
我的问题是,这些类型的区别是什么?
简单的例子,当每一个观察深度类型是理想的使用将是伟大的!
发布于 2017-02-22 02:59:25
答案与角的$watch的工作原理有关。有三种角度应用$watch的方法:引用、集合、值(正如您已经提到的)。
参考资料:
引用会查看值的引用,并且只有在引用发生更改时才会注册更改(并导致重登)。这是最便宜的手表类型。引用更改的示例:
$scope.userArray = newUserArray集合:
收藏的观察深度更深.它会在收藏品里面查看。如果通过引用监视会触发,或者在集合中添加、删除或重新排序新项,则它将注册更改。
$scope.userArray.push(newUser);值:
价值的深度是最昂贵的.它将监视集合中的值。如果通过引用监视会触发,如果Watch By Collection会触发,或者如果集合中的值发生更改,则它将注册更改。
$scope.userArray[0].age = 32;这个答案很受https://teropa.info/blog/2014/01/26/the-three-watch-depths-of-angularjs.html Tero写的一篇优秀文章的启发。
https://stackoverflow.com/questions/33833634
复制相似问题