[FE] Hello Angular

作者: 何幻 | 来源:发表于2017-08-01 10:37 被阅读54次

AngularJS 1.x是Angular的上一代框架,
Angular团队做了规范,老框架为AngularJS 1.x,新框架统称为Angular,
Angular使用了TypeScript进行开发,与AngularJS 1.x不兼容,而且采用了语义化的版本号,以后是向下兼容的。

1. 安装Angular

(1)全局安装Angular CLI

npm install -g @angular/cli

(2)创建样板工程

ng new my-app

(3)打开服务

cd my-app
ng serve --open

ng serve会打开服务,监控文件的变更,并自动重新构建,
--open选项(或简写为-o),会自动打开浏览器,并访问http://localhost:4200/

注:
执行ng serve --open的时候可能会报错,

getaddrinfo ENOTFOUND localhost
Error: getaddrinfo ENOTFOUND localhost
    at errnoException (dns.js:50:10)
    at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:92:26)

可以通过iHosts绑定域名localhost到本机IP来解决,

127.0.0.1 localhost

2. 应用目录

2.1 构建产品代码

Angular应用位于src文件夹中,我们可以使用如下命令进行构建,

ng build --env=prod

它将生成产品代码到./dist目录中,访问http://localhost:4200/dist/index.html可以进行查看。

2.2 目录结构

src
├── app
│   ├── app.component.css
│   ├── app.component.html
│   ├── app.component.spec.ts
│   ├── app.component.ts
│   └── app.module.ts
├── assets
├── environments
│   ├── environment.prod.ts
│   └── environment.ts
├── favicon.ico
├── index.html
├── main.ts
├── polyfills.ts
├── styles.css
├── test.ts
├── tsconfig.app.json
├── tsconfig.spec.json
└── typings.d.ts

2.3 文件介绍

(1)index.html
index.html是首页,CLI工具会自动添加js和css文件进去,
所以并没有包含<script><link>标签,而是直接包含了一个html5自定义标签<app-root></app-root>

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>MyApp</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
</body>
</html>

(2)main.ts
main.ts是应用的入口,

import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';
import { environment } from './environments/environment';

if (environment.production) {
  enableProdMode();
}

platformBrowserDynamic().bootstrapModule(AppModule);

它根据environments/environment.ts中的配置,来切换开发环境和生产环境,
AppModule是当前的应用模块,由app/app.module.ts中导出。

(3)app/app.module.ts
app/app.module.ts文件中使用AppComponent注册了AppModule模块,

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

其中,AppComponentapp/app.component.ts导出,
@NgModuleAppModule类的装饰器。

(4)app/app.component.ts
app/app.component.ts创建了<app-root>组件,指定了它的模板和样式,

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';
}

其中,@ComponentAppComponent类的装饰器。


参考

Angular - QuickStart
build modulesError: getaddrinfo ENOTFOUND localhost

相关文章

  • [FE] Hello Angular

    AngularJS 1.x是Angular的上一代框架,Angular团队做了规范,老框架为AngularJS 1...

  • [FE] hello assemblyscript

    1. 背景 AssemblyScript 是一个从 TypeScript 到 WebAssembly 的编译器。 ...

  • [FE] Hello Vue

    1. 安装Vue (1)全局安装vue-cli (2)在工程目录中,创建一个基于 webpack 的新项目 (3)...

  • [FE] hello-mobx

    1. 项目初始化 2. 安装开发环境依赖 3. 安装模块依赖 4. 新建./.babelrc和./webpack....

  • [FE] Hello Service Worker

    启动服务器 MDN: Service Worker文档中指出,Service Worker只能用在使用https协...

  • [FE] hello webpack loader

    webpack loader是一个node模块,它导出了一个函数,当使用该loader载入文件的时候,webpac...

  • [FE] Hello Ant Design

    1. 环境搭建: (1)安装node.js (2)更换npm为淘宝的源 (3)安装webpack,babel和脚手...

  • [FE] Hello "Observable Hooks"

    最近项目中用到了 react + rxjs + observable-hooks,下文总结一下 observabl...

  • [FE] hello-styled-components

    1. 项目初始化 2. 安装开发环境依赖 3. 安装模块依赖 4. 新建./.babelrc和webpack.co...

  • [FE] Hello Cycle.js

    1. 安装 (1)全局安装webpack和babel (2)安装babel-loader和babel-plugin...

网友评论

    本文标题:[FE] Hello Angular

    本文链接:https://www.haomeiwen.com/subject/eqodlxtx.html