前言

大概今年春天的时候,自己对这个词产生了兴趣,那会只是简单的查了一下,并没有深入研究过这部分知识块,现在终于开始接触这些东西。

内容

AngularJS在web应用方面是一个非常完美的JavaScript
MVC框架。它减少了对界面的DOM操作,而且在不经过后台数据绑定的程度上,实现了数据绑定,刷新的时候是局部刷新实时性还是可观的。AngularJS是由JavaScript和HTML组成的。

这里来说一下AngularJS的核心框架MVC(Model-view-controller),在开发的时候,这个框架将逻辑单元和概念分离成了几个相互独立的部分,这样职责分明,大概分为三个独立的模块:

模型(Model):是整个应用的驱动力,指的是应用从服务器端获得的数据。

视图(View):是用户可以浏览并与之交互的UI界面,动态的,基于当前的模型。

控制器(controller):代表着业务逻辑及表现层,它掌握一系列操作,比如获取数据,决定如何展现数据模型,以及将哪些数据展现给用户等。

上面的部分,有没有感觉有点类似软件开发过程中的三层开发模型。

独立的模块开发的好处:

1、每个单元只负责做一件事。模型层负责数据操作,视图层展现UI界面,控制层决定业务逻辑,特别符合单一职责原则。

2、单元之间相互独立,依赖性小,模块化、可重用性和可维护性高。

光凭上面的介绍,你是不是就想实践学习这门语言了,下面的好处让你对它更加爱不释手。

  • AngularJS优点:

1、是一个单页面(SPA)应用框架。AngularJS避免了以前使用模板化页面让创建和维护应用的复杂性。

2、相同的功能块,AngularJS的代码量要少很多。

3、AngularJS应用中,大部分花费在业务逻辑或者核心功能上,而不是浪费在那些不断重复的陈词滥调上。

4、天生是声明式的。

5、通过CSS和HTML来编辑页面,这一部分和业务逻辑以及功能模块是相互独立的。

6、单元测试比较简单。

  • 几大核心原则

1、数据驱动(通过数据绑定实现);

2、声明式的(功能封装性好);

3、概念分离(模块独立,不同部分之间概念分离的比较清楚);

4、依赖注入(需要某个具体控制器或者服务室,并不需要直接在代码中用new操作符或者类似的函数显式的创建其实例);

5、可扩展性(通过创建自定义指令扩展程序)

6、
可测性(控制器、服务、指令到视图和页面迁移都是可测性的);

小结

上面说了一些AngularJS的魅力之处,光说中是很苍白无力,在接下来的章节中,会给大家讲解Angular的基本语法特性和基本实践。

感谢您的宝贵时间···

AngularJS(一)理论篇的更多相关文章

  1. RabbitMQ学习总结 第一篇:理论篇

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  2. 【PHPsocket编程专题(理论篇)】初步理解TCP/IP、Http、Socket.md

    前言 我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API).那TCP/IP又是什么呢?TCP/IP是ISO/OS ...

  3. Lucene核心--构建Lucene搜索(上篇,理论篇)

    2.1构建Lucene搜索 2.1.1 Lucene内容模型 一个文档(document)就是Lucene建立索引和搜索的原子单元,它由一个或者多个字段(field)组成,字段才是Lucene的真实内 ...

  4. 游戏UI框架设计(一) : 架构设计理论篇

    游戏UI框架设计(一) ---架构设计理论篇 前几天(2017年2月)看到一篇文章,国内王健林.马云等大咖们看好的未来十大最有"钱途"产业中,排名第一的就是"泛娱乐&qu ...

  5. HTML5的Websocket(理论篇 I)

    HTML5的Websocket(理论篇 I) ** 先请来TA的邻居:** http:无状态.基于tcp请求/响应模式的应用层协议 (A:哎呀,上次你请我吃饭了么? B:我想想, 上次请你吃了么) t ...

  6. FPGA时序约束——理论篇

    在FPGA 设计中,很少进行细致全面的时序约束和分析,Fmax是最常见也往往是一个设计唯一的约束.这一方面是由FPGA的特殊结构决定的,另一方面也是由于缺乏好用的工具造成的.好的时序约束可以指导布局布 ...

  7. Oracle知识梳理(一)理论篇:基本概念和术语整理

    理论篇:基本概念和术语整理 一.关系数据库           关系数据库是目前应用最为广泛的数据库系统,它采用关系数据模型作为数据的组织方式,关系数据模型由关系的数据结构,关系的操作集合和关系的完整 ...

  8. 一步步教你轻松学支持向量机SVM算法之理论篇1

    一步步教你轻松学支持向量机SVM算法之理论篇1 (白宁超 2018年10月22日10:03:35) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...

  9. Linux中磁盘分区——理论篇

    Linux中磁盘分区——理论篇 现在主流的分区的方式有两种——MBR分区和GPT分区,本文将着重介绍MBR分区底层原理,及用相关命令验证相关原理 Linux中磁盘分区理论篇 为什么要对磁盘进行分区 M ...

  10. 【机器学习】Logistic Regression 的前世今生(理论篇)

    Logistic Regression 的前世今生(理论篇) 本博客仅为作者记录笔记之用,不免有非常多细节不正确之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需转载,请 ...

随机推荐

  1. OracleParameter中参数名必须是DB中已有字段:【 ORA-01745: 无效的主机/绑定变量名】

    错误例子: 错误原因:查询的变量是自己随便命名的,不是数据库表中已有的字段, 因此,在进行OracleParameter(":rownum",10)时,在数据库中无法自动进行字段匹 ...

  2. DotNetBar笔记

    1.TextBoxDropDown  这是一个绝对TMD坑爹的狗屁玩意儿.键盘的四个事件全部不好使.但是这个玩意儿有个好处就是他的DropDownControl属性可以用来制作ComboGrid. 然 ...

  3. 使用svn进行本地代码管理

    简述 这里讨论的是如何管理自己个人电脑的个人项目的代码.和SVN服务器配置无关. 可以先到TortoiseSVN官网下载安装包进行安装. 代码仓库管理 比如现在有一个工程需要进行管理,可以先将该工程放 ...

  4. PDM/CDM中进行搜索

    Option   Explicit ValidationMode   =   True InteractiveMode =   im_Batch Dim   mdl   '当前model '获取当前活 ...

  5. 有关Backgroundworker

    (一)Backgroundworker取消时应该用的有关代码: CancelAsync方法是在前台主线程用的,CancellationPending属性是在后台子线程用的.实际的使用方式应该是这样的: ...

  6. UML在实践中的现状和一些建议

    本文是我在csdn上看到的文章,由于认识中的共鸣,摘抄至此. 原文地址:http://blog.csdn.net/vrman/article/details/280157 UML在国内不少地方获得了应 ...

  7. Linux 下安装redis

    记录一下linux下的安装步骤,还是比较复杂的 1. 下载redis-2.8.19.tar.gz: ftp传到linux01上: 解压: tar –zxvf redis-2.8.19.tar.gz 2 ...

  8. Hibernate 简易入门教程

    Hibernate HIbernate主要包含如下几个接口:Session,Query,Criteria以及Transaction.这些接口的实现在幕后是紧密相连的. 在一个HIbernate应用程序 ...

  9. Struts2框架04 struts和spring整合

    目录 1 servlet 和 filter 的异同 2 内存中的字符编码 3 gbk和utf-8的特点 4 struts和spring的整合 5 struts和spring的整合步骤 6 spring ...

  10. 初步认识ASP.NET WebForm

    C#可已进行以下两大类的开发 一.客户端应用程序C/S 主要有两种开发技术: 1.winForm windows窗体应用程序 2.WPF微软新一代图形框架 MFC(比较老的开发技术) MVVM(客户端 ...