AngularJS(一)理论篇
前言
大概今年春天的时候,自己对这个词产生了兴趣,那会只是简单的查了一下,并没有深入研究过这部分知识块,现在终于开始接触这些东西。
内容
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(一)理论篇的更多相关文章
- RabbitMQ学习总结 第一篇:理论篇
目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...
- 【PHPsocket编程专题(理论篇)】初步理解TCP/IP、Http、Socket.md
前言 我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API).那TCP/IP又是什么呢?TCP/IP是ISO/OS ...
- Lucene核心--构建Lucene搜索(上篇,理论篇)
2.1构建Lucene搜索 2.1.1 Lucene内容模型 一个文档(document)就是Lucene建立索引和搜索的原子单元,它由一个或者多个字段(field)组成,字段才是Lucene的真实内 ...
- 游戏UI框架设计(一) : 架构设计理论篇
游戏UI框架设计(一) ---架构设计理论篇 前几天(2017年2月)看到一篇文章,国内王健林.马云等大咖们看好的未来十大最有"钱途"产业中,排名第一的就是"泛娱乐&qu ...
- HTML5的Websocket(理论篇 I)
HTML5的Websocket(理论篇 I) ** 先请来TA的邻居:** http:无状态.基于tcp请求/响应模式的应用层协议 (A:哎呀,上次你请我吃饭了么? B:我想想, 上次请你吃了么) t ...
- FPGA时序约束——理论篇
在FPGA 设计中,很少进行细致全面的时序约束和分析,Fmax是最常见也往往是一个设计唯一的约束.这一方面是由FPGA的特殊结构决定的,另一方面也是由于缺乏好用的工具造成的.好的时序约束可以指导布局布 ...
- Oracle知识梳理(一)理论篇:基本概念和术语整理
理论篇:基本概念和术语整理 一.关系数据库 关系数据库是目前应用最为广泛的数据库系统,它采用关系数据模型作为数据的组织方式,关系数据模型由关系的数据结构,关系的操作集合和关系的完整 ...
- 一步步教你轻松学支持向量机SVM算法之理论篇1
一步步教你轻松学支持向量机SVM算法之理论篇1 (白宁超 2018年10月22日10:03:35) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...
- Linux中磁盘分区——理论篇
Linux中磁盘分区——理论篇 现在主流的分区的方式有两种——MBR分区和GPT分区,本文将着重介绍MBR分区底层原理,及用相关命令验证相关原理 Linux中磁盘分区理论篇 为什么要对磁盘进行分区 M ...
- 【机器学习】Logistic Regression 的前世今生(理论篇)
Logistic Regression 的前世今生(理论篇) 本博客仅为作者记录笔记之用,不免有非常多细节不正确之处. 还望各位看官能够见谅,欢迎批评指正. 博客虽水,然亦博主之苦劳也. 如需转载,请 ...
随机推荐
- OracleParameter中参数名必须是DB中已有字段:【 ORA-01745: 无效的主机/绑定变量名】
错误例子: 错误原因:查询的变量是自己随便命名的,不是数据库表中已有的字段, 因此,在进行OracleParameter(":rownum",10)时,在数据库中无法自动进行字段匹 ...
- DotNetBar笔记
1.TextBoxDropDown 这是一个绝对TMD坑爹的狗屁玩意儿.键盘的四个事件全部不好使.但是这个玩意儿有个好处就是他的DropDownControl属性可以用来制作ComboGrid. 然 ...
- 使用svn进行本地代码管理
简述 这里讨论的是如何管理自己个人电脑的个人项目的代码.和SVN服务器配置无关. 可以先到TortoiseSVN官网下载安装包进行安装. 代码仓库管理 比如现在有一个工程需要进行管理,可以先将该工程放 ...
- PDM/CDM中进行搜索
Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl '当前model '获取当前活 ...
- 有关Backgroundworker
(一)Backgroundworker取消时应该用的有关代码: CancelAsync方法是在前台主线程用的,CancellationPending属性是在后台子线程用的.实际的使用方式应该是这样的: ...
- UML在实践中的现状和一些建议
本文是我在csdn上看到的文章,由于认识中的共鸣,摘抄至此. 原文地址:http://blog.csdn.net/vrman/article/details/280157 UML在国内不少地方获得了应 ...
- Linux 下安装redis
记录一下linux下的安装步骤,还是比较复杂的 1. 下载redis-2.8.19.tar.gz: ftp传到linux01上: 解压: tar –zxvf redis-2.8.19.tar.gz 2 ...
- Hibernate 简易入门教程
Hibernate HIbernate主要包含如下几个接口:Session,Query,Criteria以及Transaction.这些接口的实现在幕后是紧密相连的. 在一个HIbernate应用程序 ...
- Struts2框架04 struts和spring整合
目录 1 servlet 和 filter 的异同 2 内存中的字符编码 3 gbk和utf-8的特点 4 struts和spring的整合 5 struts和spring的整合步骤 6 spring ...
- 初步认识ASP.NET WebForm
C#可已进行以下两大类的开发 一.客户端应用程序C/S 主要有两种开发技术: 1.winForm windows窗体应用程序 2.WPF微软新一代图形框架 MFC(比较老的开发技术) MVVM(客户端 ...