先日は、Backbone.Router とドットインストールにて取り上げられているアプリを 2020 年的に取り組むことをしてみました。
今回もドットインストールでは触れていない、サーバーと通信してのデータの CURD(作成、更新、読み取り、削除)を試してみます。
目次
参考
ディレクトリ構成
以下のディレクトリ構成になっています。
1 | | package-lock.json |
モデルの CURD
モデル単独での curd を試してみます。
src/model/memo.js
を以下のように作成します。
1 | const _ = require("underscore"); |
モデルを呼び出すsrc/index.js
は次のようになっています。
1 | const Memo = require("./model/memo"); |
確認(モデルの CURD)
src/model/memo.js
とsrc/index.js
が用意しました。
用意できたら、API サーバーと backbone.js をビルドするサーバーを両方起動して、ブラウザでアクセスします。
動作確認では、コンソールへの表示しかしないので、開発ツールを立ち上げます。
以下のようになります。
1 | index.js:13 {text: "", id: 1} |
非同期で通信しているので、順番が合いませんが、データの作成・更新・読み込み・削除が実現できています。
アクセス先の API サーバは、json-server で用意していますが、データが目に見えて書き換わってゆくのが見ていても楽しいです。
コレクションの CURD
今度は、コレクションで CURD をしてみます。
先に作ったMemo
モデルのコレクションを作成します。
以下のsrc/collection/memos.js
です。
1 | const Backbone = require("backbone"); |
コレクションを呼び出すsrc/index.js
は次のようになっています。
1 | const Memos = require("./collection/memos"); |
本来であればデータの更新などは、イベントを検知すべきですが、コレクションの CURD だけを動作確認したいのでいいとしましょう。
確認(コレクションの CURD)
ここまでで、src/model/memo.js
とsrc/collection/memos.js
、src/index.js
が用意しました。
用意できたら、API サーバーと backbone.js をビルドするサーバーを両方起動して、ブラウザでアクセスします。
コンソールの表示は以下のようになります。
1 | index.js:11 (4) [{…}, {…}, {…}, {…}] <=データ表示 |
値の取得、追加、更新、削除ができました。
モデルとコレクションで CURD を試すことができました。
Rails も触っているからか、Backbone.js はコレクションの単位もモデルっぽいと感じるところがありました。
ではでは。