Angular6、リリースだってよ
凍結したAngular5のPWA開発
以前、
- Angular5、MDBootstrap、FirebaseでPWAを作ってる最中
- Firebaseから取得したデータをタイムスタンプの降順で並び替えて表示する方法(DESC)
- FirebaseのデータベースをRealtime DatabaseからCloud Firestoreに移行
にて、簡単なサービスを作ってみようと思って着手しておりましたが、
結局、サービスとしてやりたい事のアイデアを出せず、転職も忙しくて、凍結してしまいました。
ロゴどんな風にしよう?とか、ときめいていたあの頃が懐かしい。
Angular5, MDBootstrap, Firebaseで結局やった事
- MDBootstrapを使って見た目を少しカスタマイズしたグローバルナビの作成
- 「ng new [project] --service-worker」でプロジェクト生成し、manifest.jsonとngsw-config.jsonを作ってアプリをPWA化
- ログイン画面でFirebase認証して、AuthGuardで認証済みチェック
- 画面から投稿したデータをCloud Firestoreへデータ登録
- rxjs/ObservableでCloud Firestoreからデータを読み込んだデータをasyncパイプでサクッと画面にリアルタイム反映
ぐらいですね。
元々、Angular4でもやれてた事も存分に含まれてるでしょうが、私がやった事なかったので。。。
デザイン周りはナビバーだけ少しやって、後は全部テキトーって酷さで凍結です。
Angularのドキュメント日本語翻訳が進んでいる
私がAngular5でアプリを作ってた頃は、バージョン5のドキュメントは英語のものしかありませんでした。
今は有志の方々で翻訳を進めており、このように日本語化も随時進んでいる最中のようです。
ワオ、素敵。
Angularの日本語翻訳に協力したい貴方へ
そんな方は、ここにプルリク送ればいいみたいですね。
きっと、日本中のAngularファンからリスクペクトされる事でしょう。
https://github.com/angular/angular-ja
Angular6、出るってよ
さて、私がモタモタしてた間に、Angular6がリリースされます。
4/4にv6.0.0がメジャーリリースとなります。
気になるバージョン互換性
- Angular4のサポート:〜2018/10
- Angular6のサポート:〜2019/10
今年の10月まではAngular4-6の互換性は守られるって事でしょうか。
ただ、Angular4で使えていた<template>というタグはv6で抹消され、<ng-template>を使えとの事です。
バージョン2-6の互換とかはどうなんでしょうか?
5→6は簡単にアップデートできるらしいです。
Angular6での変更点
ここを読んでます。
https://www.ngdevelop.tech/angular-6-features/
Ivy Rendererになるらしい
ivyというコンパイラに変わるようです。これによってビルドが早くなり、
コードサイズはさらに圧縮され、レンダリング速度も上がるようです。
このivyコンパイラなるものについて、解説されてる方を見つけました
DESIGN DOC (Ivy): Separate Compilationを読む
実は速いのAngular?
Angularはサイズでかいし重いし遅い、という話も目にしますが、
最近、海外でAngular5, React, Vue.jsのパフォーマンス比較した方の記事を見たところ、
Angular5が一番速いという結果になってました。自分でやった訳じゃないのでよくわかりませんが。
6では、さらに高速になるんでしょうか?
Bazel Compilerになるってよ
小さな修正で全部ビルドし直すんじゃなくて、直したとこだけビルドできるようにして、ビルドを高速化できる風に変わるらしい。
Closure Compilerになるってよ
次々とコンパイラが出てくる。なんじゃこりゃ。
どうやらJSのバンドルファイルを作るものらしい。Webpackよりも優秀な奴なんだとか。
Angular-CLIはWebpackを内部で使ってたけど、これに変わりますよっていう事?
ちょっとわかりません。
Typescript 2.6.xで実装できるってよ
ここら辺ができるようになるってことでしょうか?詳しい方のまとめを見てみました。
TypeScript 2.6.1 変更点
フォームの変更点
以前は、フォームの値変更時、何らかの値不正などが起きていた際、
以下のように$eventを渡す実装だと、変更後の値を参照できていたようですが、
<input [(ngModel)]="name" (ngModelChange)="onChange($event)">
onChange(value) {
console.log(value); // would log updated value
}
このように、コントロールを介して値を参照する実装にしていると、変更前の値を参照してしまう問題があったようです。
これが、同じ実装で、変更後の値を参照できるように変わったらしいです。
<input #modelDir="ngModel" [(ngModel)]="name" (ngModelChange)="onChange(modelDir)">
onChange(ngModel: NgModel) {
console.log(ngModel.value); // would log old value, not updated value → will log updated value
}
Multiple validators for array method of FormBuilderが出るってよ
FormBuilder.array()を利用し、コントロールに対して複数のバリデーターを配列で指定できるようになるって書いてます。
ngOnInit() {
this.questionForm = this.formBuilder.group({
text: ['', Validators.required],
options: this.formBuilder.array([], [MyValidators.correctCount, MyValidators.totalCount])
});
}
ただ、私はAnagular5でこのようにフォームを作る実装をしていました。
同じように配列で複数のバリデーターを指定して動いていましたが、何が違うのかピンと来ていません。
ngOnInit() {
this.signupForm = this.fb.group({
'email': ['', [Validators.required, Validators.email]],
'password': ['', [Validators.required]]
});
}
Router便利になるってよ
navigationSource、restoredStateというものが、NavigationStartに追加されたようです。
どんな方法でナビゲーションされて来たのかをこれで調べられるようです。
Optional generic type for ElementRef
@ViewChild('my-element') myElement:ElementRef;
とだけ書いてありました。わかるような、わからないような。
@ViewChildを使う実装を自分でやった事無いので。
詳しくはAngularのgithubで
簡単ですが以上です。変更内容のもっと詳しい内容はgithubの原文をご確認ください。
https://github.com/angular/angular/blob/master/CHANGELOG.md
では、おやすみなさい。
Author And Source
この問題について(Angular6、リリースだってよ), 我々は、より多くの情報をここで見つけました https://qiita.com/uegaki-masaaki/items/c2f42a2e3f38506e167b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .