组件开发
组件继承关系
IMaterialComp|-IBtnComp|-IFormComp
目录结构
// 简单组件input|-input.type.ts|-input.interface.ts|-input.component.ts|-input.component.html|-input.component.scss|-index.ts// 复杂组件table|-animation|-option|-state|-comp|-index.ts
注解格式
// ok@Input()placeholder: string;// err@Input() type: InputType;
公有属性放在class最前面
export class InputComponent {@Input()placeholder: string;@Input()type: InputType;@Input()min: number;@Input()max: number;// internal_InputType = InputType;}
双向绑定
// two-way bindingprivate _value: string;@Output() valueChange = new EventEmitter();@Input() get value() {return this._value;}set value(_value) {if (_value !== this) {this._value = _value;this.valueChange.emit(_value);}}
类型定义
export type ColorType = 'primary' | 'accent' | 'warn' | undefined;
import 格式
先后顺序(作用域)
npm库在前面
范围最大的在前面
更外层的在前面
// e.g.import {IFormComp,} from '../form.interface';import {InputType} from './input.type';
{}中的变量按照字母顺序排列
// e.g.import {InputType} from './input.type';import {// 字母顺序排列IInputComp,IInputOption,} from './input.interface';
class 格式
被依赖项写在依赖项之前
方法之间空1行
注解与class之间没有空行
@Component({selector: 'mat-edit',templateUrl: './edit.component.html',styleUrls: [ './edit.component.scss'],})export class EditComponent implements OnInit, IEditComp {
private属性和方法都加上_
class命名
统一前缀component-mat
<div class="component-mat-upload__image-container"><div class="component-mat-upload__image-image-container" *ngFor="let image of images index as i"><img class="component-mat-upload__image-image" src="{{ image }}" alt="" /><mat-icon class="component-mat-upload__image-image-remove" (click)="onClickRemove(i)">close</mat-icon></div><div *ngIf="showUploadBtn" class="component-mat-upload__image-image-container component-mat-upload__image-button" (click)="uploadFile()"><mat-icon class="component-mat-upload__image-button-icon">add</mat-icon><input#file1ng2FileSelecttype="file"[(ngModel)]="value"[style.display]="'none'"[uploader]="uploader"(change)="selectedFileOnChanged($event)"/></div></div>
样式
组件内部
container不设置margin和paddingmargin,padding方向,自左向右,自上而下,特殊情况特殊处理。
