Angular入门开发实战

Angular 与 angular.js 不是同一种前端框架

angular.js在2010年10月发布,而 Angular 诞生于2016 年 9 月,比 React 和 Vue都要晚。

本文GitHub源码:https://github.com/xtqjh/ngx-test

配置开发环境

  • 安装最新稳定版的Node
  • 检查npm与node版本
npm -v
node -v

更新npm

npm i npm@latest -g

安装Angular CLI

npm i -g @angular/cli@latest

查看Angular版本

ng v

在这里插入图片描述

创建项目

ng new ngx-test

项目开发前调研技术栈追加相关参数

  • 样式style 如 --style=scss 值可以是(css | scss | sass | less | stylus )等
  • 项目中使用路由routing 如 --routing 生成routing module
  • 前缀 prefix 如 --prefix 或 -p 默认为app,参数自定义 比如 --prefix=zc

更多参数参考 ng new

启动项目

ng serve
ng serve --port 4100 --open
  • 默认端口4200,可以通过port更改端口 --port 4100
  • 启动时自动打开浏览器 --open

本地代理

开发环境项目在开始对接后端接口时通常需要配置本地代理

在项目根目录下添加 proxyconfig.json 文件

[
  {
    "context": [
      "/wmsgateway",
      "/tmsgateway",
      "/fileserver"
    ],
    "target": "http://172.16.111.11:8087"
  },
  {
    "context": [
      "/oagateway",
      "/hrgateway",
    ],
    "target": "http://172.16.111.12:8087"
  }
]

NG-ZORRO

NG-ZORRO是阿里出品的企业级Angular UI组件。在示例中,我们将使用NG-ZORRO表单、表格等。

在项目根目录下执行以下命令后将自动完成 ng-zorro-antd 的相关初始化配置。

ng add ng-zorro-antd
Installed packages for tooling via npm.
? Add icon assets [ Detail: https://ng.ant.design/components/icon/en ] Yes
? Set up custom theme file [ Detail: https://ng.ant.design/docs/customize-theme/en ] Yes
? Choose your locale code: zh_CN
? Choose template to create project: blank

注意:默认会修改与添加以下文件

CREATE src/theme.less
UPDATE src/app/app.module.ts
UPDATE angular.json

NgModule

NgModule 把组件、指令和管道打包成内聚的功能块,每个模块聚焦于一个特性区域、业务领域、工作流或通用工具。

选项说明
declarations用到的组件、指令、管道
providers依赖注入服务
imports导入需要的模块
exports导出的模块
entryComponents需提前编译好的模块

常用模块

模块名称所属说明
BrowserModule@angular/platform-browser浏览器运行
CommonModule@angular/common基础指令
FormsModule@angular/forms基础表单
ReactiveFormsModule@angular/forms响应式表单
RouterModule@angular/router路由
HttpClientModule@angular/common/http请求

运行在浏览器中的应用,必须在根模块AppModule中导入BrowserModule ,因为它提供了启动和运行浏览器应用的某些必须服务。BrowserModule 的provider是面向整个应用的,只能在根模块中使用。 特性模块只需要 CommonModule 中的常用指令。

创建登录界面

在根目录下执行以下命令通过 ng-zorro-antd 来创建登录组件

ng g ng-zorro-antd:form-normal-login login

脚手架会自动创建修改以下文件,生成的组件使用了响应式表单。

CREATE src/app/login/login.component.css
CREATE src/app/login/login.component.html
CREATE src/app/login/login.component.spec.ts
CREATE src/app/login/login.component.ts
UPDATE src/app/app.module.ts

创建列表分页页面

在根目录下执行以下命令通过 ng-zorro-antd 来创建登录组件

ng g ng-zorro-antd:table-row-selection-custom list

脚手架会自动创建修改以下文件,生成的组件使用了响应式表单。

CREATE src/app/list/list.component.css
CREATE src/app/list/list.component.html
CREATE src/app/list/list.component.spec.ts
CREATE src/app/list/list.component.ts
UPDATE src/app/app.module.ts
添加组件到路由

编辑 app-routing.module.ts 文件,添加组件路由

import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { LoginComponent } from './login/login.component';
import { ListComponent } from './list/list.component';

const routes: Routes = [
  { path: '', redirectTo: 'login', pathMatch: 'full' },
  { path: 'login', component: LoginComponent },
  { path: 'list', component: ListComponent },
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }

添加组件路由链接

编辑 app.component.html 文件

<h1>{{title}}</h1>
<nav>
  <a routerLink="/login">登录</a>
  |
  <a routerLink="/list">列表</a>
</nav>
<hr>
<router-outlet></router-outlet>

编译项目

ng build
ng build --prod --output-path=dist/ngx-tms --base-href=/ngx-tms/
  • –base-href=/ngx-tms/ 相当于在index.html中添加,默认
  • –prod 通过UglifyJS 删除更多未使用的代码,使项目编译后更小体积
  • –output-hashing=all 编译后输出文件名以哈希模式,便于缓存
  • -output-path=dist/ngx-tms 指定编译后文件输出目录

更多参数参考 ng build

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值