性能——是否应该避免双向数据绑定?
Performance - Should two way data binding be avoided?
抱歉,如果问题太基础了。
我想知道我是否应该在我的系统中避免双向数据绑定。我可以在提交表单中捕获表单的值,而无需使用双向数据绑定。
我的问题是双向数据绑定是否真的消耗了太多内存。我应该停止使用它吗?
这与内存或性能无关。它更多地是关于单向数据流约定。
您可以将 [(ngModel)]
分为输入 [ngModel]=data
和输出 (ngModelChange)="callback($event)"
两种方式。您将确信数据只能在一个方向上改变。
这种方法的第二个优点是在您需要更改输入数据时的自定义行为。
简短回答:是的,使用它(在我看来)。
在性能方面,AngularJS(版本 1)处理双向数据绑定的方式存在问题,但这在 Angular 2+ 中已基本解决(在某种程度上在绝大多数情况下,这不是你需要关心的事情。
然而,如何 Angular 处理双向绑定值得一读,因为这将提高您对语法以及如何使用它以适应上下文的理解- Throughtram 在这里有一个很好的博客:https://blog.thoughtram.io/angular/2016/10/13/two-way-data-binding-in-angular-2.html
是否"good practice"使用,这个当然值得商榷。虽然我同意 Denis Reshetniak 的回答是有道理的,但我个人经常使用它,我建议节省的时间和更简单的代码足以弥补您可能 运行 遇到的任何缺点和偶尔出现的问题(我我还没有遇到问题,并且自版本 2 发布以来一直在大量使用它)。归根结底,这取决于您的情况和要求 - 您应该确保了解利弊,然后决定哪种方法最适合您的用例。
抱歉,如果问题太基础了。
我想知道我是否应该在我的系统中避免双向数据绑定。我可以在提交表单中捕获表单的值,而无需使用双向数据绑定。
我的问题是双向数据绑定是否真的消耗了太多内存。我应该停止使用它吗?
这与内存或性能无关。它更多地是关于单向数据流约定。
您可以将 [(ngModel)]
分为输入 [ngModel]=data
和输出 (ngModelChange)="callback($event)"
两种方式。您将确信数据只能在一个方向上改变。
这种方法的第二个优点是在您需要更改输入数据时的自定义行为。
简短回答:是的,使用它(在我看来)。
在性能方面,AngularJS(版本 1)处理双向数据绑定的方式存在问题,但这在 Angular 2+ 中已基本解决(在某种程度上在绝大多数情况下,这不是你需要关心的事情。
然而,如何 Angular 处理双向绑定值得一读,因为这将提高您对语法以及如何使用它以适应上下文的理解- Throughtram 在这里有一个很好的博客:https://blog.thoughtram.io/angular/2016/10/13/two-way-data-binding-in-angular-2.html
是否"good practice"使用,这个当然值得商榷。虽然我同意 Denis Reshetniak 的回答是有道理的,但我个人经常使用它,我建议节省的时间和更简单的代码足以弥补您可能 运行 遇到的任何缺点和偶尔出现的问题(我我还没有遇到问题,并且自版本 2 发布以来一直在大量使用它)。归根结底,这取决于您的情况和要求 - 您应该确保了解利弊,然后决定哪种方法最适合您的用例。