二、Angular 2.0开发指南以及搭建开发环境

简介: > 自第一章讲Angular2.0的简单开发入门,我们了解到ng2的开发实践是围绕着web-component来展开的,ng2中更加强化了Component的概念,弱化了指令的概念(实际上Component是复杂指令)。同时我们学习到web-component中数据和视图是如何互相影响的,即`Input`和`Output`的概念,数据通过Input往view以及view里的子组件传递,view及其

自第一章讲Angular2.0的简单开发入门,我们了解到ng2的开发实践是围绕着web-component来展开的,ng2中更加强化了Component的概念,弱化了指令的概念(实际上Component是复杂指令)。同时我们学习到web-component中数据和视图是如何互相影响的,即InputOutput的概念,数据通过Input往view以及view里的子组件传递,view及其子组件通过Ouput来改变数据(VM通过数据绑定机制实现互通,View <- data-bindings -> Model)。

简单回顾上周分享(猛击此处)内容后,是否有跃跃欲试的冲动。这章带你快速搭建前端开发环境以及指导你如何学习ng2和解决开发过程中遇到的问题。

搭建开发环境

前端一直以来都是发展迅速,前端构建,前端开发IDE,前端应用型框架也更加完善和规范等。但是线上相关产品也是层出无穷,我们如何选择前端的开发工具呢。这里我们推荐的Webpack + Angular2 + vscode/webstrom集成开发,其中好处不在此敷述,所以这章会教大家搭建好这套集成开发环境。

实际上我们提供了一个ng2开发样板库webapp,在readme.md中有详细说明如何安装前端环境。环境搭建好后,按照脚本说明启动本地服务,即可访问到webapp提供的Demo示例。

搭建环境简单总结为3个步骤

  1. 安装开发工具

    [sublime text](https://www.sublimetext.com/3)、 [vscode](https://code.visualstudio.com/) 和[webstorm](https://www.jetbrains.com/webstorm/) 3选一
  2. 使用nvm管理nodeJS版本

      [brew](http://brew.sh/index_zh-cn.html) -> [nvm](http://www.atatech.org/articles/23346) -> [nodeJS@v6.2.0](http://nodejs.cn/doc/node/) -> [tnpm](http://npm.alibaba-inc.com/profile)
  3. 本地集成环境

    [naza-server@2.0.0-alpha](http://gitlab.alibaba-inc.com/aliyun_FED/webapp) -> [quick start](http://gitlab.alibaba-inc.com/aliyun_FED/webapp/blob/master/README.md)
    

Angular2.0开发指南

ng2官网文档的开发者指南有做详细介绍,但对于新手来说,可能对于ng2中的一些概念和特性还比较陌生,所有这里会从我个人学习ng2的经验来理解ng2的一些简单概念和开发思路。

ng2开发应用的步骤归纳

bootstrap -> app -> components -> services -> utils(http, pipes, etc...)

  1. bootstrap初始化应用,指定参数一般是app,通过bootstrap,app组件开始应用到页面中,展现我们想要看到的效果。
  2. app,我们这里假设应用就是一个大组件,app就是这个大组件,在这个大组件里,我们把页面分隔为很多个小组件,每个组件实现页面的具体的一部分功能,所有功能构成一个整体。
  3. components多个小组件,开发思路和app,即可以有自己的子组件,可以一直嵌套下去。
  4. services服务,实际上是封装好的代码逻辑,可以是数据,函数,类等,组件中注入service可以使用到提供的封装逻辑。
  5. utils工具类,是services封装逻辑是需要用到的工具类,比如ajax请求需要用到http类等。

ng2开发过程的代码实现

我们更关心在ng2开发过程中,components如何嵌入多个子组件和服务,其中decoratormetadata概念如何理解。看官网提供的的关系图:

overview2

  1. Components vs Directives
    组件和指令的同异点

    • 组件也是指令,指令分为3种类型:组件,结构指令和属性指令。
    • 组件是复杂指令,具有更丰富的生命周期(比如组件渲染之前,组件渲染成功)
    • 创建组件类需要@Component, 创建指令需要@Directive
  2. Decoratorsmetadata的关系

    • 装饰器是用来装饰组件,类,函数甚至参数的行为。
    • 装饰器工作时,需要传入一些配置信息,这些配置信息统称为metadata
    • metadata实际上还包含整个应用的一些全局配置信息。
  3. Directivesservices的关系

    • 指令和服务独立开发,但指令需要调用服务时,通过metadata的providers声明后方可使用。(提示:指令定义需要@Component或者@Directive来装饰,这里说的metadata就是这2个装饰器的配置信息)
    • 指令中使用服务时,需要在指令类的constructor的参数中声明使用的服务,指令在工作时,ng2内部会自动注入服务的实例到constructor中。
    • 父指令声明了服务,在子指令可以不用声明也可以使用。
    • 这里说的指令涵盖组件和指令

在了解ng2编码的同时,我们会发现ng2把框架提供的功能全分散到各个模块中,比如@Component需要通过import { Component } from '@angular/core'来获取到,而ngFor指令需要import { NgFor } from '@angular/common'。具体那些功能在于哪些模块,貌似只能通过官方提供的API(猛击此处)来查找了,但是我们通过给模块做个分类,更加方便我们查找相关的API


ng2模块分类

先上图
_2016_06_02_00_48_57

最重要的4个模块基本能解决新手开发的需要,4个模块分别为:

  1. @angular/core,所有组件、指令、服务等定义类时需要的装饰器,都可以通过 @angular/core 找到
  2. @angular/common, 所有ng2提供的指令、服务和过滤管道pipes(主要做转换,比如货币转换,json转字符串等),通过 @angular/common 可以找到。
  3. @angular/http,所有ajax请求相关的API在此
  4. @angular/platform-browser-dynamic, 实际上我们只用到bootstrap,但也是基本应用初始化必须使用的。

OK,更多的内容,还需要各位在学习的过程中慢慢体会和理解其原理,ppt比较简陋,确是这段时间个人学习ng2的一个心得,细细品味,相信你会有更多的收获。:)

本次章节PPT

目录
相关文章
|
缓存 前端开发 JavaScript
Javascript学习-angular开发环境搭建及新建项目并运行
Javascript学习-angular开发环境搭建及新建项目并运行
113 0
Javascript学习-angular开发环境搭建及新建项目并运行
|
JavaScript
Angular入门,开发环境搭建,使用Angular CLI创建你的第一个Angular项目
Angular入门,开发环境搭建,使用Angular CLI创建你的第一个Angular项目
388 0
Angular入门,开发环境搭建,使用Angular CLI创建你的第一个Angular项目
|
Web App开发 JavaScript 索引
Angular开发环境搭建
1、安装NODEJS (1) nodejs程序下载 从http://nodejs.cn/download/ ,根据自己的操作系统,选择对应的版本。 image.png (2) nodejs安装 安装过程,按照引导程序,一步一步走下去即可。
1182 0
|
3月前
|
API 开发者 UED
PrimeFaces:JSF的魔法衣橱,解锁UI设计的无限可能!
【8月更文挑战第31天】本文介绍如何结合 JSF(JavaServer Faces)和 PrimeFaces 构建美观且功能强大的现代用户界面。PrimeFaces 提供丰富的 UI 组件库,包括按钮、输入框、数据网格等,支持现代 Web 标准,简化界面开发。文章通过具体示例展示如何使用 `&lt;p:inputText&gt;` 和 `&lt;p:calendar&gt;` 等组件创建用户表单,并用 `&lt;p:dataTable&gt;` 展示数据集合,提升 JSF 应用的易用性和开发效率。
56 0
|
3月前
|
开发者 安全 SQL
JSF安全卫士:打造铜墙铁壁,抵御Web攻击的钢铁防线!
【8月更文挑战第31天】在构建Web应用时,安全性至关重要。JavaServer Faces (JSF)作为流行的Java Web框架,需防范如XSS、CSRF及SQL注入等攻击。本文详细介绍了如何在JSF应用中实施安全措施,包括严格验证用户输入、使用安全编码实践、实施内容安全策略(CSP)及使用CSRF tokens等。通过示例代码和最佳实践,帮助开发者构建更安全的应用,保护用户数据和系统资源。
51 0
|
3月前
|
开发者 C# C++
揭秘:如何轻松驾驭Uno Platform,用C#和XAML打造跨平台神器——一步步打造你的高性能WebAssembly应用!
【8月更文挑战第31天】Uno Platform 是一个跨平台应用程序框架,支持使用 C# 和 XAML 创建多平台应用,包括 Web。通过编译为 WebAssembly,Uno Platform 可实现在 Web 上运行高性能、接近原生体验的应用。本文介绍如何构建高效的 WebAssembly 应用:首先确保安装最新版本的 Visual Studio 或 VS Code 并配置 Uno Platform 开发环境;接着创建新的 Uno Platform 项目;然后通过安装工具链并使用 Uno WebAssembly CLI 编译应用;最后添加示例代码并测试应用。
96 0
|
3月前
|
前端开发 开发者 安全
JSF支付功能大揭秘:探索如何在Java世界中实现安全无缝的在线支付体验
【8月更文挑战第31天】在电子商务和在线交易日益普及的今天,实现在线支付功能已成为许多Web应用的必备需求。JavaServer Faces (JSF) 作为一种流行的Java Web框架,提供了丰富的组件和工具来构建用户界面,包括与支付网关集成以实现在线支付。支付网关是处理信用卡和借记卡支付的系统,在商家和银行之间起到桥梁作用。本文将探讨如何使用JSF与支付网关集成,以及实现在线支付功能时需要考虑的关键点
44 0
|
3月前
|
开发者 前端开发 开发框架
JSF与移动应用,开启全新交互体验!让你的Web应用轻松征服移动设备,让用户爱不释手!
【8月更文挑战第31天】在现代Web应用开发中,移动设备的普及使得构建移动友好的应用变得至关重要。尽管JSF(JavaServer Faces)主要用于Web应用开发,但结合Bootstrap等前端框架,也能实现优秀的移动交互体验。本文探讨如何在JSF应用中实现移动友好性,并通过示例代码展示具体实现方法。使用Bootstrap的响应式布局和组件可以确保JSF页面在移动设备上自适应,并提供友好的表单输入和提交体验。尽管JSF存在组件库较小和学习成本较高等局限性,但合理利用其特性仍能显著提升用户体验。通过不断学习和实践,开发者可以更好地掌握JSF应用的移动友好性,为Web应用开发贡献力量。
48 0
|
3月前
|
JavaScript 开发者
从零基础到实战应用:Angular入门指南带你一步步构建你的第一个Web应用——全面介绍环境搭建、项目创建、组件开发与应用集成
【8月更文挑战第31天】本文档是针对初学者的Angular入门指南。通过详细步骤与示例代码,教你如何使用Angular CLI搭建开发环境、创建新项目、添加及配置组件,并运行首个应用。Angular是由Google开发的强大Web框架,专为高效构建复杂单页应用设计。按照本指南操作,你将能够快速上手Angular,开启Web应用开发之旅。
91 0