与vue不同的是ng使用了ts做语法支持,vue还没有说非ts不可,我是觉得它有react类组件的样子,也有vue指令的影子
-angluar | -vue |
---|---|
*ngFor | v-for |
*ngIf | v-if |
(click) | @click |
[msg]=“msg” | :msg=‘msg’ |
#appSons | @\appSons=’#appSons’ |
*ngSwitch | \ |
[(ngModel)] | v-model |
[ngClass]、[ngStyle] | :class、:style |
today | date:‘yyyy-MM-dd HH:mm:ss’ | \ |
创建组件模块:ng g c commons/sons
创建服务模块:
- ng g s services/rxjs
- 在组件中引用 import { RxjsService } from ‘…/…/services/rxjs.service’;
- 构造函数中传入 constructor(public request: RxjsService)
- ngOnInit生命周期中this.request调用
组件传值思想与vue很像
一.父传子
- 父组件定义public numbers: number = 0
- 父组件html中<app-sons [msg]=“numbers”>
- 子组件引入input装饰器 import { Input } from ‘@angular/core’;
- 在类组件引用装饰器:@Input() msg:any
- html中可以直接使用msg
我是父组件传过来的值{{msg}}
二.子传父
- 子组件定义:sonFunction(){ alert(‘我是子组件emit的方法’) }
- 父组件html中<app-sons #appSons>
- 父组件引入ViewChild装饰器 import { ViewChild } from ‘@angular/core’
- 在类组件引用装饰器:@ViewChild(‘appSons’) appSons: any
- 父组件可以通过this.appSons拿到子组件上的任意变量与方法:this.appSons.sonFunction()
rxjs与promise
-rxjs | -promise |
---|---|
new Observable | new Promise |
.next() | .resolve() |
.interval(1000) 延迟执行 | \ |
.subscribe() | .then() |
.rerry(重连次数) | \ |
.retryWhen(重连时的操作) | \ |
.unsubscribe() 取消订阅 类似于定时器 | \ |
.error | reject() |
.complete | .finsh |
.catch() | .catch() |
区别最大的是rxjs比promise更加强大,但体积也随之变得臃肿,rxjs可以配置取消订阅,多次执行等,但是promise是不支持得,rxjs还提供了很多小工具例如pipe中的map,filter等
更多不同的地方还要探索