12月21日(木)1、2コマ目
今日の予習
フロントエンド開発はプレーンなJavaScriptから始まり、JQuery、ReactやVue、Angularといろいろなライブラリやフレームワークを利用してきた。
これらの違いをソースコードで比較する。
1. 入力内容を表示する
テキストボックスに入力するとリアルタイムに表示される。
テキストボックスのinputイベントが発生したら、入力内容を取得して表示する。
JavaScript版
JQuery版
Vue.js版
2.ボタンクリックで表示
テキストボックスに入力後ボタンをクリックすると、入力内容が表示される。
JavaScript版
JQuery版
Vue.js版
3.配列で表を作成
オブジェクト配列の内容を表形式で表示する。
JavaScript版
JQuery版
Vue.js版
4.カウンタ
ボタンをクリックする毎に数字がインクリメントされる。
JavaScript版
JQuery版
Vue.js版
今日、やったこと
- フロントエンド、バックエンド
- JavaScript、JQuery、Vue.js
今日のホワイトボード
フロントエンド、バックエンド
フロントエンドはクライアント側。
Webブラウザを使う場合はJavaScriptで開発。iOSやAndoroid上の専用アプリならSwiftやkotlinで開発。
バックエンドはサーバー側。
JavaやC#、PHPやPythonなど選択肢はいろいろ。
![]() |
| 図 フロントエンド、バックエンド |
同期通信、非同期通信
JavaScriptがクライアントで利用されるきっかけになったのがGoogle Mapのような非同期通信。Ajaxとも呼ばれている。
![]() |
| 図 同期通信・非同期通信 |
同期通信は、サーバーへリクエスト送信するとレスポンスが返ってくるまでなにもしない。
非同期通信は、サーバーへリクエスト送信しレスポンスを待たずに次の処理を実行する。
Webページ全体を書き換える場合は同期通信。
サーバーからデータを取得して、Webページ中の一部分だけを書き換える場合は非同期通信で十分。
ただ、Webブラウザには非同期通信を実現する手段はないため、JavaScriptで制御する必要がある。
ソースコードはここを参照。
Ajaxの普及とともにJavaScriptの利用が増えていった。
JavaScript、JQuery、Vue.js
同じアプリケーションをプレーンなJavaScript、一昔前によく使われたライブラリのJQuery、いまどきのVue.jsを使って作成して比較。
![]() |
| 図 作ったモノ |
JavaScriptとJQueryの比較
JQueryはJavaScriptのソースを簡略化できる。
![]() |
| 図 JavaScriptとJQuery |
JQueryを使うには
$(セレクタ)をdocument.querySelector(セレクタ)に置き換える必要がある。それをやるにはJQueryのライブラリファイルが必要。このライブラリファイルはローカルに保存するか、インターネット(CDN)から取得するかの2種類がある。
![]() |
| 図 ライブラリファイルの読み込み |
このあとのVue.jsも同じ。Vue.jsのライブラリファイルが必要。
Vue.jsのオブジェクト
必要なデータやメソッドなどをオブジェクトに定義しておき、そのオブジェクトをHTML上の特定の部分に紐づけをする。
![]() |
| 図 Vue.jsのオブジェクト |
オブジェクト内のdataプロパティの値は扱うデータを定義する。
Vue.jsのv-model、{{ }}
v-modelは双方向バインド。下図ではv-modelが付与された<input>タグに何か入力されるとオブジェクト内のinputプロパティの値に反映される。
逆に、オブジェクト内のinputプロパティの値が変更されると、v-modelが付与された<input>タグの内容に反映される。
{{ }}は指定プロパティの値をHTMLに埋め込む。
![]() |
| 図 双方向バインド、データ埋め込み |
Vue.jsのv-on、ref
v-onはonXXXと同じでイベントハンドラの指定。
ref属性が付与されると、JavaScriptからref属性値で入力内容が取得できる。
![]() |
| 図 イベントハンドラの指定、入力値の参照 |
次回は
前回作ったREST APIアプリのクライアント側をプレーンなJavaScriptからVue.jsの利用に改造します。







