"Angular应用程序DOM操作的最佳实践"

26 浏览
0 Comments

"Angular应用程序DOM操作的最佳实践"

关闭。这个问题需要更多的聚焦。它目前不接受回答。

锁定。这个问题及其回答被锁定,因为问题与话题不符但具有历史意义。它目前不接受新回答或互动。

假设我熟悉使用jQuery开发客户端应用程序,但现在我想开始使用AngularJS。你能描述一下需要的范式转换吗?以下是一些可能有助于您构建答案的问题:

  • 在客户端Web应用程序方面,我应该如何架构和设计有所不同?最大的区别是什么?
  • 我应该停止做什么/使用什么;改用什么/开始使用什么?
  • 是否有任何服务器方面的考虑/限制?

我不是在寻找详细的jQueryAngularJS之间的比较。

admin 更改状态以发布 2023年5月21日
0
0 Comments

从命令式到声明式

在jQuery中,选择器用于查找DOM元素,然后将事件处理程序绑定/注册到它们上面。当事件触发时,那些(命令式的)代码执行以更新/改变DOM。

在AngularJS中,你应该考虑视图,而不是DOM元素。视图是(声明式的)HTML,其中包含AngularJS的指令。指令为我们设置了事件处理程序,并提供了动态数据绑定。选择器很少使用,因此ID(以及某些类型的类)的需求大大降低。视图通过作用域与模型相关联。视图是模型的投影。事件更改模型(即数据,作用域属性),并且投射这些模型的视图“自动”更新。

在AngularJS中,考虑模型,而不是jQuery选择的DOM元素来存储数据。考虑视图作为这些模型的投影,而不是注册回调来操作用户所看到的内容。

关注点分离

jQuery使用非侵入性JavaScript,将行为(JavaScript)与结构(HTML)分离。

AngularJS使用控制器和指令(每个可以有自己的控制器和/或编译和链接函数)将行为从视图结构(HTML)中分离出来。 Angular还有服务过滤器来帮助分离/组织您的应用程序。

另请参见https://stackoverflow.com/a/14346528/215945

应用程序设计

设计AngularJS应用程序的一种方法:

  1. 考虑您的模型。为这些模型创建服务或自己的JavaScript对象。
  2. 考虑如何展示您的模型-您的视图。为每个视图创建HTML模板,使用必要的指令来获取动态数据绑定。
  3. 将控制器附加到每个视图(使用ng-view和路由或ng-controller)。控制器仅获取视图需要执行其工作的任何模型数据。使控制器尽可能轻量级。

原型继承

在不了解JavaScript原型继承工作方式的情况下,您可以使用jQuery做很多事情。当开发AngularJS应用程序时,如果您对JavaScript继承有很好的理解,那么您将避免一些常见的问题。推荐阅读:什么是AngularJS中作用域原型继承 /原型继承的细微差别?

0