まずは、データの表示から!


Silicon Valley Super Ware

2020年6月7日


まずは、データの表示から!

先週は、Webサービスの起動時にJSON Placeholderから投稿、コメント、ユーザーの データを取得する部分の概要を投稿しました。 これで、表示に使う基本データは準備できた事になります。
データはVUEXのstoreに保存されているので、どのモジュール(ページ)からも アクセスできるので、データの受け渡しを余り気にする必要はないので UI(ユーザーインターフェース)を作るのがシンプルになります。
まずは、データの操作の前にこのデータを表示する部分を作ってみます。

表示のスタイルを決めてHTMLを作る!

これは、特に新しい事ではありません。 表示させるスタイルを決めてHTMLの記述を書いて あとは、HTMLにデータを埋め込むためのコード(JavaScript)を書くだけです。
やる事は、先月のお問合せフォームのWebサービスで作った管理ページと大差はありません。 お問合せフォームの場合は、お問合せの一覧を表示させて、メッセージが選択されたら そのメッセージを表示するという物でした。
基本的には同じような事をやれば良いわけです。

複数のデータを利用して見やすく表示!

先月と違う所はもう少し「便利」な表示をやろう!という所です。
どういうことかというと、REST APIの"GET posts"でえられるデータは
  • id
  • userId
  • title
  • body
の4つのフィールドです。タイトルとボディは利用者が見て「意味のある情報」ですが idやuserIdは単なる番号でそのまま見ても余り意味のある情報ではありません。

表示する場合は、「意味のある情報」を提供するのが大切!

そこで、もう少し見やすい情報に「加工」して表示する方が親切です。
投稿の本文である「body」は長くなる場合があって、一覧で表示するのは 余り見やすい形にできないので、個別表示のみにして、 一覧では、タイトルと投稿者のみを表示するのが親切です。
投稿者の情報を表示するには、投稿のデータ以外にユーザーの情報を userIdを基に見つけて表示すると便利です。
もう一つは、投稿者ごとに表示を出せると便利です。

データの加工のやり方

一番シンプルなやりかたは、UI側でデータを準備する方法です。 各投稿からuserIdを抜き出して、ユーザー情報から該当するユーザーの名前を見つける処理を methodsやcomputedで処理して見つけ出して表示します。
もう一つは、VUEXの「getters」でデータを取り出す処理を書いておいて、 それを呼び出して表示する方法です。

上手く使い分ける事がポイント

勿論どちらでやっても良いのですが、上手く使い分けるとコードがスッキリします。
例えばユーザごとの投稿を抜き出したり、userIdからユーザー情報のエントリを見つける処理を gettersで書いてしまえば、複数のモジュールで同じようなデータが必要な場合、モジュール毎に 記述をする必要がなくなるのでコードはスッキリします。
一方である特定のモジュールでしか利用しないデータの場合、 モジュール内の、methods/computedで書いた方が必要以上にstoreの記述を増やさずに済むので 良い場合もあります。 この辺りの境界をどこで分けるかを考えて実装します。

更新をする場合はgetterで処理した方が便利

今回はデータを読み込むだけですので、処理の場所が変わっても 余り影響はありません。どこに書くかだけの問題です。

更新する場合は、「getters」を上手く使った方がよい!

理由は簡単で、抜き出したデータをstoreの中で処理するのに都合がよいからです
$storeのstateから更新するデータを抜き出して置いて、あとは新しいデータに 置き換える作業がstoreの中で完結しやすいからです。
今回のJSON Placeholderのデータは比較的シンプルですが、 このように、storeを作っていくと意外に大きなプログラムになります。 データ処理が集中するためですが、余り大きなプログラムになると メインテナンスが大変になります。
今回の例では、使う予定はありませんが、そんな時に利用できるのが 「modules」の考え方です。storeを階層化できるやり方です。 たとえば、REST APIの処理、Firebaseの処理などで処理するモジュールを 分けて、機能ごとに記述できるようにするという方法です。 丁度、REDUXで複数のReducerを作るようなイメージですね!

VUEXにデータ処理をまとめる

今回は、データ処理をできるだけVUEXに集めて UIはUIのイベント処理(ボタンのクリックや項目の選択など)に集中するやり方を 基本方針にしています。
こうすると、後からUIの変更や置き換えも簡単になります。
UIは利用者の意向で変更される場合がかなりあります。 UIにデータ操作が多いとこうした対応が大変になります。 そうした意味でも、なるべくUIとデータ処理は簡単に分離できる形で実装するのが とても大切になってきます。
シリコンバレースーパーウエアでは、シンプルなWebサービスの作り方だけではなく、 より複雑なWebサービスをテーマにした講座も同時に提供しています。 さらに、作ったWebサービスを利用したビジネスの展開まで考えたWebサービスの 作り方がわかるようになります。

興味のある方は今すぐお問合せください!



またよろしければ、ニュースレターの登録をお願いします!大体週一回お届けしています。ブログよりは一歩踏み込んだもっと濃い内容を発信しています。



Copyright(c) 2020 by Silicon Valley Super Ware, all rights reserved.

コメント

このブログの人気の投稿

ユーザーインターフェースの設計

足し算以外もできるようにする

改良版足し算プログラム