Angular6入门
一. 脚手架安装
全局安装脚手架:
npm install -g @angular/cli复制代码
创建新项目:
ng new my-app(项目名)复制代码
转到项目目录:
cd my-app复制代码
启动服务器:
ng serve --open 复制代码
注:如果 4200 窗口已启动,再次启动服务器,命令行提示报错:
Port 4200 is already in use. Use '--port' to specify a different port复制代码
需要输入命令行:
ng serve -o --port 1111(窗口名),启动新窗口复制代码
创建新组件:
ng generate component heroes(组件名)复制代码
Angular最佳实践是在单独的顶级模块中加载和配置路由器:
ng generate module app-routing --flat --module=app
复制代码
路由器插座,为了导出:
<router-outlet></router-outlet> 复制代码
如果提示安装包出错: 先检查是不是网路问题,可以安装淘宝镜像cnpm 最傻瓜式操作:移除 node_modules 文件夹及 package-lock.json 文件,执行npm install 对于部分类库版本低的问题怎么查看:脚手架在 package.json 里多数类库都是使用宽松的版本号,^0.1.0 带有 ^ 符号表示使用最新次版本号 注意: 这种方式会对所有类库按比较新的版本安装,但有可能会导致由于第三方类型的破坏性变更会导致一些不必要的麻烦
二. angular 指令
[ngModel] ( 双向绑定 )
<input type="text" [(ngModel)]="title"> 复制代码
ngNonBindable ( 禁止绑定 )
<div ngNonBindable>{{title}}</div>注:使用了 ngNonBindable ,花括号就会被当做字符串一起显示出来。
复制代码
[ngStyle] ( 绑定style样式 )
<div [ngStyle]="{'background-color': 'red'}"></div>
绑定一组样式:
<div [ngStyle] = 'divStyle'>div绑定一组样式</div>
divStyle = {'background':'#ccc','font-size':'30px'
} 复制代码
[class.active] ( class动态绑定 )
[class.active]="isActive"
绑定多个:
<div [ngClass]="{'active1': 'true', 'active2': true}">class</div>
复制代码
*ngIf ( 控制DOM元素添加和删除 )
<div *ngIf = 'true'>添加元素</div>
<div *ngIf = 'false'>删除显示</div>
复制代码
(click) ( 事件绑定 )
<div (click) = 'divClick()'>点击</div>
复制代码
.enter( 事件修饰符)
<input type="text" (keyup.enter) = "divClick()">复制代码
*ngFor ( 循环一个数组对象 )
<ul *ngFor = "let v of obj;let i=index"><li>{{v}}--{{i}}</li>
</ul>
复制代码
[ngSwitch] ( 循环语句 )
message = {'name':'tian'}<ul [ngSwitch]="message.name"><li *ngSwitchCase="tian">满足条件</li><li *ngSwitchCase="kuo">不满足条件</li><li *ngSwitchDefault>默认</li>
</ul>复制代码
三. angular 几种常用方法
$event事件代理
<ul (click) = "eventAgent($event)"><li>1</li><li>2</li><li>3</li>
</ul>eventAgent(event){console.log(event.target)
}复制代码
set监听
set title(newTitle: string){console.log(newTitle)//返回监听属性值
}复制代码
四. angular 生命周期函数
1、指令与组件共有的钩子:
ngOnChanges( 当数据绑定输入属性的值发生变化时调用 )ngOnInit( 在第一次 ngOnChanges 后调用)ngDoCheck( 自定义的方法,用于检测和处理值的改变 )ngOnDestroy( 指令销毁前调用 )
复制代码
2、组件特有的钩子
ngAfterContentInit( 在组件内容初始化之后调用 )ngAfterContentChecked( 组件每次检查内容时调用 )ngAfterViewInit( 组件相应的视图初始化之后调用 )ngAfterViewChecked( 组件每次检查视图时调用 )复制代码
五. angular 组件
//子组件
<div>child
</div>
//父组件
<div>parent//子组件在父组件渲染<app-child></app-child>
</div>
复制代码
@Component({selector: 'app-child',templateUrl: './app-child.component.html',styleUrls: ['./app-child.component.less']
})
复制代码
六. 父子<=>传参
1. 父=>子组件传参(1)
父传子:
<div><app-child [name] = "title"></app-child>
</div>
子组件接收:
@Input()//输入属性,在父组件通过属性绑定,传递数据到子组件(父=>子)
public name接收参数
receiving(){//打印所传参数console.log(this.name)
}
执行此方法完成传参:this.receiving()
复制代码
2. 子=>父组件传参(2)
子传父:
<div><app-heros1 [name] = "title" (foo) = "bar($event)"></app-heros1>
</div>
bar(event){console.log(event);//打印‘传入父级组件’
}
子组件传入
@Output() //输出属性,在父组件通过绑定事件,把子组件中的数据传递到父组件(子=>父)
foo = new EventEmitter<string>();
todo(){this.foo.emit('传入父级组件');
}
执行此方法完成传参:this.todo()
复制代码
七. 服务注入
// 将父组件当做服务注入到子组件中
import {AppComponent} from "../app.component";
constructor(private appComponent:AppComponent,
) { }// 将子组件当做服务注入到父组件中
import { ViewChild } from '@angular/core';
import { HeaderComponent } from './header/header.component';
@ViewChild(HeaderComponent)
private headerComponent: HeaderComponent;注:父子组件不可互相作为服务注入模块复制代码
八. 路由跳转及传参
// 跳转路由需引入
import { ActivatedRoute, Router } from '@angular/router';
<button (click) = "jump()">跳转</button>
constructor(private activatedRoute: ActivatedRoute,//接受跳转后传入的对象private router: Router, //设置路由跳转
){}
jump():void{// navigate 第一个参数为英雄路由,第二个参数是跳转路由传入的值(所传值是JSON对象)this.router.navigate(["/heros",{queryParams:{obj:{ id: 1, foo: 'foo' }}}])
}
//跳转路由取值
console.log(JSON.parse(this.activatedRoute.queryParams['value'].obj))结合以上路由跳转可能会用到此方法,返回上一级路由
this.location.back()
复制代码
转载于:https://juejin.im/post/5c948ab3e51d45795a1dfd72
Angular6入门相关推荐
- 【CuteJavaScript】Angular6入门项目(1.构建项目和创建路由)
本文目录 一.项目起步 二.编写路由组件 三.编写页面组件 1.编写单一组件 2.模拟数据 3.编写主从组件 四.编写服务 1.为什么需要服务 2.编写服务 五.引入RxJS 1.关于RxJS 2.引 ...
- Angular6入门学习
Anagular学习 创建Anagular快捷方式 全局脚手架 npm i -g @angular/cli 创建项目 ng new myapp 创建组件 ng generate component 组 ...
- angular6入门实战,环境搭建、添加组件、服务、路由和HTTP
目录 一.新建web项目 二.启动项目 三.添加表格,css控制隔行变色 四.创建组件 五.显示列表 创建模拟数据 导入 用* ngFor 列出 使用* ngIf 隐藏空白详细信息 设置所选样式 添加 ...
- angular6 mysql_从Angular6开始入门RxJS6
简介 本文的读者受众 正准备学习Angular的人 想要知道Rx和RxJS相关知识的人 这篇文章是什么? Angular使用RxJS标准库来有效地实现异步处理. 为了使用好 RxJS,需要考虑到与传统 ...
- OsharpNS轻量级.net core快速开发框架简明入门教程-代码生成器的使用
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- OsharpNS轻量级.net core快速开发框架简明入门教程-基于Osharp实现自己的业务功能...
OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...
- ❤️《Vue前端基础框架集合从入门到高级》(小白也可学,建议收藏)❤️
<Vue前端基础框架集合从入门到高级>,小白也可学 文章目录 <Vue前端基础框架集合从入门到高级>,小白也可学 ❤️一.前端核心分析 ❤️1.1.概述 ❤️1.2.前端三要素 ...
- 【Angular】技术入门
前言 在项目中应用了前端工程化,从而实现了前后端分离,即前后端共同开发互不影响.经过架构组的讨论,最后项目中使用Angular作为前端框架.目前Angular的版本已经升级到6了,项目中为了稳定开发使 ...
- 用Construct 2制作入门小游戏~
今天在软导课上了解到了Construct 2这个神器,本零基础菜鸟决定尝试做一个简单的小游戏(实际上是入门的教程啊= = 首先呢,肯定是到官网下载软件啊,点击我下载~ 等安装完毕后我便按照新手教程开始 ...
最新文章
- word2vec应用场景_Embedding在腾讯应用宝的推荐实践
- 常用10种PHP编辑器下载
- android瓦片地图下载,Andorid 如何加载 瓦片地图
- 内附视频讲解 | 券商财富管理数字化转型趋势分析与六大驱动力解读
- 疫情期间用掉了1400亿个!二维码会被人类扫完吗?
- python 示例_带有示例的Python date isocalendar()方法
- 计算机视觉论文-2021-06-15
- 心理压力如何测试软件,心理压力测试 缓解压力有什么办法
- Ubuntu - 安装gcc
- 程序员修炼之道---从小工到专家 第一章
- 中华英才网竞品分析报告2016
- 【板栗糖GIS】DOS—如何在当前文件夹内部批量建子文件夹
- JVM内存管理------GC算法简介
- linux命令前期记不住,linux前期 - 浪里小白龙l的个人空间 - OSCHINA - 中文开源技术交流社区...
- 红米3 android驱动,红米3驱动最新版
- 个人深度学习工作站配置
- 《深入理解计算机系统》读书笔记-016(第 12 章 并发编程)
- 删除核心显卡右键菜单
- 消防应急照明灯具和标志灯具
- C语言程序设计教程(第三版)课后习题1.6