Angular企业级开发(1)-AngularJS简介

AngularJS介绍

AngularJS是一个功能完善的JavaScript前端框架,同时是基于MVC(Model-View-Controller理念的框架,使用它能够高效的开发桌面web app和移动端应用。AngularJS由Google公司开发而且开源出来,给所有开发者使用。前端基于Bootstrap+AngularJS框架,后端基于RESTful服务框架开发的应用越来越多。未来后端基于Docker+Microservice部署的应用也会越来越多。

AngularJS官方网站

AngularJS特点

1.客户端模板 传统的web应用:都是多页面,服务器端创建html,把html和数据装配在一起,然后再把生成好的html页面返回给浏览器。

单页应用(Single Page Application):模板和数据都会返回给浏览器中,然后在浏览器中进行装配。服务端仅仅为这些模板提供静态资源,然后为这些模板提供所需的数据。

2.MVC M(Model)-V(View)-C(Controller)最早主要是在桌面应用开发中使用,强调的是界面,数据模型和控制器的三者之间的分离。视图会从模型中获取数据,然后展示给用户,当用户通过鼠标或键盘操作或键入与应用进行交互的时候,控制器将会做出响应,并修改模型中的数据,最后模型会通知视图,数据已经发生变化,这样视图就可以刷新其中改变的内容。

3.数据双向绑定 view层的数据和model层的数据是双向绑定的,其中之一发生更改,另一方会随之变化,这不用你写任何代码。

4.指令 可以把模板和相关业务逻辑编写成html标签的形式,之所以可以实现这一点,主要是因为AngularJS引入了一款强大的DOM转换引擎,可以用它来扩展HTML语法。生成的新的html标签就是指令,AngularJS内置了非常多的质量,比如:ng-repeat,ng-app,ng-controller等等。当内置指令不够时,开发者可以根据业务需求自定义开发指令。

5.依赖注入 Dependency Injection是一种设计模式,目的是在配置应用时定义应用所需的依赖。使用依赖注入能避免手动创建应用的依赖。初次启动应用时,AngularJS会使用依赖注入加载模块的依赖。

Java流行框架Spring就是充分使用了依赖注入。依赖注入能提升AngularJS应用的可测试性,而且AngularJS单元测试和集成测试还有专门的测试框架。

6.可测试性 AngularJS应用借助依赖注入的,大大提升了应用的可测试性。目前Web前端应用,一般会进行两种测试。第一种是单元测试(Unit Test),单元测试主要测试代码的一个小的单元,能在开发过程中尽早发现软件的缺陷;第二种是端到端测试(End to End,简称:E2E)。端到端测试主要测试软件中各个组件结合在一起的交互行为,从而发现软件的缺陷。

QA主要功能测试,就是开发工程师发布代码之后,测试工程师根据业务需求和功能进行功能测试。

AngularJS相比其他框架

目前主要流行的几大框架:

1.jQuery

2.React

3.Vue.js

4.Ember.js

以上四个框架都有自己的开发者,每个框架都有自己的优点和缺点。在实际项目开发者,还是要根据团队成员对框架的掌握程度来决定。但是我们还是推荐大家使用AngularJS。

Angular1.x和Angular2

在国内1.5.x版本开发的应用应该较多,但是2.0版本也已经发布了。对于Angular2,很多开发者都觉的要重新学习一遍。因为变动确实太大了,好在提供了从1.x迁移到2.0相关的工具。后面博客中涉及的版本都是基于Angular1.5.X版本。等团队成员对angular1.x相关技术和原理有一定的理解,到时才会考虑使用Angular2.0。

参考资料

1.https://zh.wikipedia.org/wiki/AngularJS

2.https://github.com/paddingme/ng-demo/blob/master/slide.md

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大魏分享(微信公众号:david-share)

VMware软件定义数据中心分析工具介绍----第三终结篇

在本文连载的第一篇中,我向大家介绍了vROps的基本架构、vROps的指标含义,以及如何自定义告警。第二篇中,介绍了如何自定义仪表盘。在本篇中,我将介绍如何自定...

3858
来自专栏运维技术迷

centos7编译安装Redis

redis能够兼容绝大部分的POSIX系统,比如Linux、OS X、OpenBSD、NetBSD、FreeBSD,其中比较典型的是Linux操作系统(如Cen...

3373
来自专栏月色的自留地

Python和C++的混合编程(使用Boost编写Python的扩展包)

  想要享受更轻松愉悦的编程,脚本语言是首选。想要更敏捷高效,c++则高山仰止。所以我一直试图在各种通用或者专用的脚本语言中将c++的优势融入其中。原来贡献...

3012
来自专栏进击的君君的前端之路

React官方脚手架create-react-app

1463
来自专栏Java后端生活

Linux(二)CentOS的安装

3215
来自专栏全华班

一款免费、开源,使用JAVA语言开发管理系统

基于SpringBoot2.0的权限管理系统 易读易懂、界面简洁美观。 核心技术采用Spring、MyBatis、Shiro没有任何其它重度依赖。直接运行即可用

1.4K2
来自专栏知晓程序

电商/票务类小程序必读,如何用小程序推送消息?

通常,服务方向用户推送的消息都带有通知性质,文案也相对固定。服务方将这类固定的文案制作成模板,这些文案就可以快速重复使用。

1212
来自专栏开源优测

[接口测试_B] 07 Pytest的测试报告

pytest命令行运行时,可以直接在控制台中查看到输出的结果,但这样的结果并不直观,也不易于保存用于后续分析和分享。如pytest -s -q test_xx....

3396
来自专栏杂烩

Http_load压力测试工具 原

    尝试过Spring的jmeter,不过好像有点难驾驭,测个文件url还行,但带个参数就各种问题不断了。

1103
来自专栏地方网络工作室的专栏

打造前端MAC工作站(五)让我们熟悉一下 MAC 命令行吧!

打造前端MAC工作站(五)让我们熟悉一下 MAC 命令行吧! 前言 对于初次基础mac或者linux的朋友来说,接收和使用命令行是一个比较困难的事情。但是,正如...

24410

扫码关注云+社区

领取腾讯云代金券