项目需要,要开始熟悉Angular,Hello, the world of ng!
昨天开始上手Angular,不得不说,官方文档给我的第一印象就是傻瓜式教学——基本上有着一套流程体系,跟着做即可。
第一个Demo是在StackBiltz上建立起来的,感觉像是官方给了一个半成品的玩具,让用户自行跟着教程体验,这样的入手方式还是蛮有趣的。
昨天的内容包括两块:通过demo体验ng+了解ng基本概念。
我觉得先上手一个demo,比较有助于具象认识,特别是后来看到ng的概念,才明白这样做真是太对了——ng的概念太多。不过真的要讲述对ng的认识,还是从概念出发吧:
@Component({ selector: ‘app-hero-list‘, templateUrl: ‘./hero-list.component.html‘, providers: [ HeroService ] }) export class HeroListComponent implements OnInit { /* . . . */ }
由代码可见,元数据可能就是每个控件的构造函数(看demo中关于组件的输入以及输出可能这样的感觉会更形象写)。通过构造函数,一个控件被实例化,具备控件类的所有属性以及函数,控件的属性会被写进窗体的”视图“文件中显示出来、控件的函数也会控制控件的形式在窗体中显示出来。因此,我才有如上的类比。再看官方给出的图,更能说明我的猜想:组件创建后,传属性值给模板中的属性(属性绑定,property binding);模板将事件实例化传给组件(事件绑定,event binding)。只是在ng中,模块最终显示(模板控制)将有HTML元素展示出来。
DecimalPipe:把数字转换成字符串, 根据本地化规则进行格式化,这些规则会决定分组大小和分组分隔符、小数点字符以及其它与本地化环境有关的配置项。
所以说,管道类似是.NET中的Convertor类,或者再广义地理解,管道是一切格式转换封装地API。
<li *ngFor="let hero of heroes"></li> <app-hero-detail *ngIf="selectedHero"></app-hero-detail>
<input [(ngModel)]="hero.name">
export class Logger { log(msg: any) { console.log(msg); } error(msg: any) { console.error(msg); } warn(msg: any) { console.warn(msg); } }
这是一个把日志记录到浏览器的控制台的类。从代码里面可以很清晰地看到关键字(我也不知道在ng里是不是这个说法)class。
下面总结一下第一天学习后,对ng各个概念的理解,用.NET 框架去理解:
Angular | .NET Framework | 框架提供了便捷的开发工具 |
Typescript | C# | |
模块(Module)(.ts) | 窗体(Winform)(.cs) | 模块就是一个容器、提供了组件的编译环境 |
视图(View) | 设计文件(.design.cs) | 视图就是模块的显示体现,具体内容由组件控制 |
组件(Component) | 控件(Controller) | 组件就是基本的内容单元 |
元数据(Metadata) | 构造函数 | 元数据实例化组件,使之与模板关联 |
模板(Template) | 控件的属性以及函数 | 模板包括事件以及函数,可以通过双向绑定控制视图 |
指令(Directive) | 控制、逻辑以及赋值语句 | |
服务(Service) | 外部类 | |
管道(Pipe) | Convertor |
【Angular】笔记(1):使用.NET Framework类比认识Angular
原文:https://www.cnblogs.com/RicardoIsLearning/p/12874961.html