12

在为项目评估 AngularJS 时,我注意到其文档中的以下段落:

游戏和 GUI 编辑器是非常密集和棘手的 DOM 操作的示例。这些类型的应用程序与 CRUD 应用程序不同,因此不适合 Angular。在这些情况下,使用更接近裸机的东西(例如 jQuery)可能更合适。

但是文档继续没有真正解释为什么会这样。为了对我们在项目中使用的技术做出明智的决定,我想更好地了解这个声明的来源以及它背后的事实。

哪些具体问题会阻碍人们尝试在 AngularJS 中构建插图工具或视频编辑套件?

4

2 回答 2

6

这是一个很好的问题。Angular 为您的普通网页工作提供了出色的声明性工具。为此,它依赖于观察者并不断检查观察属性的变化,然后用变化更新 UI。常见问题解答声称此过程“快速”,具有数百或数千个绑定,足以满足大多数用途。游戏和 GUI 编辑器可能具有复杂的界面以及频繁或持续的用户交互,因此不断重新评估大量观察者可能不是最注重性能的做事方式。将此与 Stack Overflow 之类的网站进行对比,在该网站上,用户每隔几秒才点击/按下某项内容并导致重新评估监视列表。使用更命令式的方法和库(jQuery 等)会减少开销。

于 2013-07-24T19:21:36.393 回答
4

Angular 有一些限制在这里发挥作用。

首先,ng-view 不支持嵌套视图。这限制了更复杂的 UI 设计。

接下来,“GUI 编辑器”通常围绕小部件和对话框的概念构建。Angular 是围绕非常不同的概念构建的。您可以在某种程度上模拟带有指令的小部件。但感觉就像你一直在与 Angular 作斗争。

基本上嵌套范围、隔离范围和声明性数据绑定不是复杂 GUI 工作的常见范例。

于 2013-07-24T19:43:45.563 回答