Validationモジュールを使用したチェックについては前回の記事で使い方を簡単に述べました、今回はValidationを有効活用するための2つのスコープの使い方について述べたいと思います。
今回使うコンポーネント
コンポーネント | アイコン・領域 | 用途 |
---|---|---|
All | 領域内に含まれるValidationコンポーネントのチェックがすべてOKであれば通過、1つでもNGがあれば例外をスロー | |
Any | 領域内に含まれるValidationコンポーネントのチェックが1つでもOKであれば通過、すべてNGがあれば例外をスロー |
Validationをアシストする2つのスコープ
Validationモジュールを使用したチェックとその使い方については以前の記事で説明しました。場合によっては複数のチェックを同時にかけたりするケースもあるでしょう。
このような場合、コンポーネントを複数並べて順番にチェックをすることもできますが、AllスコープとAnyスコープを使用することでチェックの効率化がはかれます。
Allスコープ
Allスコープは複数のValidationコンポーネントを配置することができます。すべてのValidationがOKの場合は次に進めることができ、1つでもNGのValidationがあれば例外(VALIDATION:MULTIPLE)発生となります。
使い方としては、ValidationのAllスコープをフロー内に配置し、その中にValidationの複数のコンポーネントを配置します。
Allを使わない場合と比較した場合の一番の違いは、複数のValidationが一度に出せるということです。Allを使用しない場合は、チェック1でNG→チェック1のNG内容が表示される→チェック1のNGを正す→チェック2でNG→チェック2のNG内容が表示される→チェック2のNGを正す→…といった感じで、1つ1つエラーを潰さないといけないのに対し、Allを使用した場合は、チェック1〜NでNG→1〜NのNG内容が表示される→チェック1〜NのNGを正すといった、ユーザ側の視点に立った時に効率の良いエラー表示をすることができます。
Anyスコープ
もう一つのAnyスコープは、スコープ内に配置されたValidationのうち、いずれか1つがチェックOKであれば次に進めることができるフローです。AllスコープがAND条件なのに対し、AnyスコープはOR条件となります。こちらはすべてのValidationがNGだった場合に例外(VALIDATION:MULTIPLE)発生となります。
Anyスコープについては、OR条件となるのでチェックが甘くなりがちです。AnyスコープはAllスコープに比べて使い方が限られそうな気がします。
まとめ
このようにValidationモジュールは入力チェックなどの検証に特化したツールとなります。チェック項目が多くなると、Choiceコンポーネントだけでは分岐の数的に追いつかなくなるため、より綿密な入力チェックを実現するためにはValidationモジューを使用するのが便利な使い方になります。
コメント