发布 ng-alain 1.0.0 正式版

96
cipchk
2018.05.16 19:12* 字数 751

ng-zorro-antd 0.7.0 发布时我就想说那得喝一杯,这个版本的等待其实在社区里反应是有点“忐忑”,所以当VTHINK跟我说来今天要发布 0.7 时我说那晚上得喝一杯。然而,为了将 ng-alain 也同步 0.7 一个晚上都在忙碌;直到倒头睡觉把喝一杯的事已经忘光了。

当然,今天也算是个不错的日子,ng-alain 也发布了 1.0.0 正式版。

从 0.8 到 1.0 并没有做了很多新的东西,一直以让开发者更加专注于业务的角度做了一些重构、抽离、测试等工作。

Angular6 发布没多久,带来了一些很酷的操作。当然 ng-alain 起点也比较激进,几乎总是第一时间保持 Angular 和 zorro 版本的同步。

在 1.0 里我们是这么开始 ng-alain 的……

如何开发

1、需要一个空 Angular 项目

ng new myapp --style less

2、加点料

ng add ng-alain

更多细节参考命令行工具

是的,没有了,就这么简单。这一切都归于 Angular cli 的开放,早先 ng-alain 就提供一个叫 @delon/cli 的类库,其实二者在做的是同一件事。

当然,还可以做更多很酷的事,例如大部分情况下对中后台的列表都是比较常规的搜索加表格形式,而在 ng-alain 里可以生成一些比较通用列表页:

ng generate ng-alain:list list
# 不介意再来一个编辑和查看页
ng generate ng-alain:edit edit
ng generate ng-alain:view view

恩,好像有点烦,要不这样好了:

ng generate ng-alain:curd order

新类库

@delon/form

ng-alain 最早的使用者们提出了一个蛮有价值的基于 JSON Schema 动态表单库,因此在另外几个人的帮忙下开发了 nz-schema-form,非常仓促的在 angular2-schema-form 基础上引入 zorro 组件库,大体还是蛮好用的,只不过数据流混乱、标准的 JSON Schema 携带非标准的属性。

花了很长的时间重新开发并正式成为 @delon 系列库中的一员:@delon/form,构建一个表单只需这样:

@Component({
  selector: 'app-demo',
  template: `<sf [schema]="schema" (formSubmit)="submit($event)"
  (formChange)="change($event)"></sf>`
})
export class DemoComponent {
  schema: SFSchema = {
    properties: {
      name: {
        type: 'string',
      },
      password: {
        type: 'string'
      },
    },
  };
  submit(value: {}) { }
}

@delon/util

有一天我们发现 ng-alain 的使用者,出现了些 @delon/abc/src/util/ 开头的引入,这些工具集大部分单纯是服务于 @delon/abc 内部组件的,一开始就弱化了这一部分的文档。

于是,把它抽离成:@delon/util,并为此强化了部分函数,比如:字符串类 format、延迟加载等。

新的开始

ng-alain 会开始放缓基建类库的迭代,而未来将更多的时间去挖掘 ng generate 发挥的能力,它可以让我们完成很多很酷的开发体验。

希望 ng-alain 真正做到【让开发者更加专注于业务】。

今夜一定会去喝一杯!

Angular2
Web note ad 1