新建ng工程
有问题多看官网文档https://www.angular.cn/guide/quickstart
1 在远程仓库建立 1个完全空的仓库,不要建立readme.MD ng cli创建时会创建readme.MD
在本地上级路径(比如~/dev)启动控制台 git clone .... 出现子文件夹,
2 新建angular工程 工程名 XXX就是上面git同名文件夹名
ng new XXX
cd ./XXX
会创建一堆东西,vscode下XXX下新建这么多东西。
新的ng7/8 直接把路由模块app-routing.module.ts给创建好了,比文档里讲的还方便。包括在app.component.html下连
全家桶就是这么霸气 233

3 新建组件
ng g component YYY
会在XXX/src/app下创建组件YYY文件夹以及各种文件 然后app.modules 等里注册这个YYY组件。
比自己手工创建组件太方便多了
4新建服务
ng g service XXX
任何逻辑代码 包括纯函数,web访问 等等,都要封装成service
比如,读取本地json
1新建1个服务
2在app.module.ts里
import { HttpClientModule } from '@angular/common/http';
imports: [
BrowserModule,
HttpClientModule,
AppRoutingModule
],
在服务构造函数里传入
constructor(private http: HttpClient) {
}
为什么呢?因为
3 要在服务里搞1个方法(get), 在get方法里要用httpClient 而返回值封成observable
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable, of } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class XXXService {
private url = 'api/heroes'; // URL to web api
constructor(private http: HttpClient) {
}
get(): Observable<any> {
return this.http.get("./assets/mock_data.json");
}
}
最后,在1个组件里使用这个服务,也要添加两行
import { XXXService } from '../xxx.service';
....
constructor(private xxxService: XXXService) { }
....
确实,ng类似java, 很多废话,一定要把一个简单的动词(get)封装到1个名词上(XXXService).
这种强制一切都是对象的,过度OOP,确实有点烦人。
但是,ng是全家桶的框架,意义在于:当前端不是我的核心域的时候,我不会为了获得90%的爽,而被10%的不爽卡死。去精细定制router 状态管理等等等各种东西
为此,宁可稍微容忍这种不爽。 反正业务代码都在service里
其实倒未必有多解耦,只是撸得相对无脑,肯定不如函数式精炼。
新建ng工程的更多相关文章
- CCS 6新建TMS320F2812工程
准备材料 CCS6 下载地址:http://www.ti.com/tool/ccstudio F2812的C语言头文件 下载地址:http://www.ti.com/lit/zip/sprc097 安 ...
- 如何在Flash Builder里新建ActionScript工程
新建ActionScript工程 1. File > New > ActionScript Project 2. 按照提示完成工程的创建 使程序直接在Flash Player中运行 1. ...
- ] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题
] 解决myeclipse中新建javaweb工程,无法使用Web App Libraries问题 标签: myeclipsejavawebWeb App Libraries 2013-10-16 1 ...
- Cocos Code IDE新建lua工程报错解决方案
今天想用cocos code IDE新建一个工程,但是控制台报错:Read json file null failed, the reason is:null.我下载的是官方3.5源码,sdk,ndk ...
- 新建android工程的时候eclipse没有生成MainActivity和layout布局
一.新建android工程的时候eclipse没有生成MainActivity和layout布局 最近由于工作上的原因,开始学习Android开发,在入门的时候就遇到了不少的坑,遇到的第一个坑就是&q ...
- Android Studio新建Jni工程
2.2版本的Android Studio支持新建Jni工程,不用再像以前自己构建工程目录,首先把自己的升级自己的AS到2.2以上 然后打开Tools->Andorid->SDK manag ...
- eclipse 配置Maven问题解决办法:新建maven工程时报错:Could not resolve archetype org.apache.maven.archetypes .
此文乃本作者配置maven,被其折磨n天,究极解决方案,好文要顶啊.欢迎致电: zhe-jiang.he@hp.com 首先各maven.archetypes下载地址: http://mirrors. ...
- Keil MDK入门---从新建一个工程开始
熟悉Keil C51的朋友对于Keil MDK上手应该比较容易,毕竟界面是很像的.但ARM内核毕竟不同于51内核,因此无论在设置上还是在编程思想上,都需要下番功夫研究的.本文以MDK V4.03为例, ...
- 新建maven工程时pom.xml报错
新建maven工程时,pom.xml报错:第一行报如下错误:multiple annotations found at this line后添加org.eclipse.m2e相关的plugin配置后, ...
随机推荐
- ELK学习笔记之F5利用ELK进行应用数据挖掘系列(1)-HTTP
0x00 概述 F5 BIGIP从应用角度位于网络结构的关键咽喉位置,可获取所有应用的流量,针对流量执行L7层处理,即便是TLS加密的流量也可以通过F5进行SSL offload.通过F5可以统一获取 ...
- 同级div设置display:inline-block,父级div强制不换行
同级div设置display:inline-block,父级div强制不换行 <html> <head></head> <body> <div i ...
- 苹果笔记本充不进电怎么办_macbook充不进电解决办法
使用苹果Macbook的用户可能会遇到这种情况,使用一段时间后自己的苹果笔记本充不进电了,虽然充电器指示灯依然亮着,但是电池电脑一直充不进去,断开充电器后就直接关机的情况.通常碰到这种情况,很多用户都 ...
- 【题解】Luogu P4979 矿洞:坍塌
原题传送门:P4979 矿洞:坍塌 这是某场膜你赛的题,最后我一百零几分rank三十几滚粗 这是我唯一ac的一题 这题比较简单qaq 前置芝士:珂朵莉树 窝博客里对珂朵莉树的介绍 没什么好说的自己看看 ...
- 11: python递归
1.1 递归讲解 1.定义 1. 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. 2.递归特性 1. 必须有一个明确的结束条件 2. 每次进入更深一层递归时,问题 ...
- es数据迁移脚本(python)
#!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:indiceCreate.py import sys import base64 import time ...
- python,pycharm安装
下载python地址:https://www.python.org/downloads/release/python-371/ 安装python ***python安装目录下的scripts加入环境变 ...
- C语言实现随机生成0或1
rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数.如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的.srand(u ...
- 前端 --- 1 HTML
一.文档结构 <!DOCTYPE html> <html lang="zh-CN"> #这个lang表示语言,zh-CN是中文的意思, 如果以英文为主,就写 ...
- 求最大流dinic算法模板
//最短增广路,Dinic算法 struct Edge { int from,to,cap,flow; };//弧度 void AddEdge(int from,int to,int cap) //增 ...