Angular7创建项目、组件、服务以及服务的使用
三大前端项目就剩angular没学了,在网上找了几个教程,这里一下,方便以后用到时查阅
创建项目
安装cli工具
npm install -g @angular/cli
创建一个空项目, 有两处要选择的,一个是路由,我这里是要路由的,还有一个开发css的语言,我这里选择scss,就不截图了,选完后会自动通过yarn安装依赖,稍等一会就好了
ng new pybbs-front-angular
创建好了,运行 npm run start 或者 ng serve 启动服务,然后就可以在浏览器里打开 http://localhost:4200/ 地址查看启动后的首页了
创建组件
命令 ng g ponent user 执行完后,会在 src/app 目录下生成一个user的文件夹,里面有四个文件
如果想把组件都放在一个文件夹里管理,也可以在创建的时候加上一个文件夹名字,比如把所有的组件都放在 ponents 文件夹里,命令就是这样的 ng g ponent ponents/user
页面名 | 说明 |
---|---|
user.ponent.html | 组件模板文件 |
user.ponent.scss | 组件的样式文件 |
user.ponent.spec.ts | 组件测试文件 |
user.ponent.ts | 组件文件 |
使用命令创建组件有个好处就是cli会自动把这个组件引入到 src/app/app.module.ts 文件里,这样直接在其它文件里使用 src/app/user/user.ponent.ts里定义的selector,一般这个名字都是 app-xxx 后面xxx就是这个模块的名字,比如这里的user模块,就是 app-user
生命周期
angular的生命周期有很多,看下下图
这里只介绍二个
方法 | 说明 |
---|---|
ngOnInit | 组件加载时初始化变量或者网络请求时代码写在这里面 |
ngAfterViewInit | 如果想对页面进行dom操作,最好在这个方法里操作,这个方法是在页面dom元素都加载完成后才调用的 |
创建服务
命令 ng g service user 执行完后,cli会自动创建两个文件在 src/app/user 文件夹里
如果想把服务也都放在一个文件夹里管理,可以在命令上加上一个服务的文件夹名字,如 ng g service services/user
服务文件名 | 说明 |
---|---|
user.service.ts | 组件提供服务的主文件 |
user.service.spec.ts | 组件提供服务文件的测试文件,写对服务测试的代码都放在这里面 |
服务创建好了之后,没有创建组件那么方便了,还需要自己配置一下,打开 src/app/app.ponent.ts 文件
在文件内引入,然后将服务注入到 providers 里
import { UserService } from './user/user.service'; @NgModule({ providers: [ UserService ] })
添加一个服务 user.service.ts
import { Injectable } from '@angular/core'; import { HttpClient, HttpHeaders } from '@angular/mon/http'; import { Observable } from 'rxjs'; @Injectable({ providedIn: 'root' }) export class TopicService { constructor(private http: HttpClient) { } fetchGithubApi() { return new Observable((observe) => { const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) }; this.http.get('https://api.github.', httpOptions) .subscribe((data: any) => { observe.next(data.detail); // 如果有错误,通过 error() 方法将错误返回 // observe.error(data.description); }); }); } }
打开 user.ponent.ts 文件,使用这个服务里定义的方法,代码如下
引入服务文件,然后初始化,这里初始化有两种方式,一种 private userService: UserService = new UserService(),另一种是通过构造方法注入
import { Component, OnInit } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { UserService } from './user.service'; @Component({ selector: 'app-user', templateUrl: './user.ponent.html', styleUrls: ['./user.ponent.scss'] }) export class UserComponent implements OnInit { constructor( private userService: UserService ) { } ngOnInit() { this.userService.fetchGithubApi() .subscribe(data => console.log(data), error => console.log(error)); } }
说明上面例子中请求接口用的是 angular 内置好的 rxjs 模块,你也可以换成流行的 axios 或者其它的框架
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南