jba*_*ndi 21 javascript data-binding angularjs
AngularJS提供双向数据绑定.
我构建了几个AngularJS应用程序,发现双向数据绑定是一个强大的功能,可以提高我的工作效率.
然而,最近我越来越多的帖子和文章声称双向数据绑定是反模式.
例子:
大多数资源支持"单向数据流",就像React/Flux推动的那样.
Angular2也宣布一段时间没有双向绑定......但是最新的文档显示它实际上是通过ngModel再次提供双向数据绑定(在属性和事件绑定之上实现)
但是,我还没有完全理解与AngularJS中的双向数据绑定相关的问题.
其他客户端技术(即swing,eclipse-rcp,winforms,wpf ......)也提供双向数据绑定,我从来没有偶然发现它是一个反模式...
是否有一个规范的例子可以很容易地说明AngularJS中双向数据绑定可能导致的问题?
我上面链接的视频似乎暗示这$scope.watch
是问题...但是这个例子可以在不$scope.watch
通过绑定到公开的函数的情况下实现$scope
.
如果避免使用$scope
(即使用controller as
),双向数据绑定会出现什么问题?
cha*_*asr 10
实际上,双向数据绑定的主要问题是性能.
当AngularJS发布时(1),此功能是开发人员大量使用该框架的首要原因.
如果没有一行代码,您可以通过从模型侧或视图侧更改其值来使元素完全动态化,在设置模型的任何位置都会更改该值.
在这个功能中,最重要的工具是观看,它代表了双向数据绑定的所有问题.
随着应用程序的发展,观察者和观察者的数量也在增加.
此外,一段时间后,应用程序可以成为观察者的大汤.
这将导致您的应用程序始终关注元素并在反面保持最新元素,并从浏览器中消耗大量资源.
这就是为什么我的建议是:尽可能避免观察者.
在控制器中几乎不需要它们.
也可以看看 :
希望对你来说更清楚.
归档时间: |
|
查看次数: |
6627 次 |
最近记录: |