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の利用に改造します。





このブログの人気の投稿

12月22日(金)1、2コマ目

10月24日(火)1、2コマ目