オブジェクトの設計図とインスタンス
オブジェクトが持つプロパティやメソッドの振る舞いを定義した設計図のようなものを一つだけ作っておいて、それを複製すれば全く同じオブジェクトを幾つでも作成できるようになる。
この様な考え方をオブジェクト指向と呼び、オブジェクトの設計図となる定義をクラスと呼びます。
クラスを元に生成したオブジェクトをインスタンスでインスタンスを生成することをインスタンス化と呼ぶ。
この様な考え方をオブジェクト指向と呼び、オブジェクトの設計図となる定義をクラスと呼びます。
クラスを元に生成したオブジェクトをインスタンスでインスタンスを生成することをインスタンス化と呼ぶ。
クラスのインスタンス生成
var obj = new クラス名(引数);
このようにインスタンスを生成する特別な役割を持つ関数をコンストラクタ(構築する人やモノ)と呼ぶ。
var obj = new クラス名(引数);
このようにインスタンスを生成する特別な役割を持つ関数をコンストラクタ(構築する人やモノ)と呼ぶ。
ランダムな位置に20個の☆を描画
JavaScriptコード
//「動くモノ」クラスの定義
var Movable = function(x, y) {
this.pos = {
x: x,
y: y
};
this.move = function(x, y) {
this.pos.x += x;
this.pos.y += y;
};
}
//ボールオブジェクトを格納する空の配列を用意する
var ball = [];
//100個分の繰り返し
for (var i = 0; i <= 20; i++) {
//ボールプロジェクトのインスタンス生成
ball[i] = new Movable(
Math.floor(Math.random() * window.innerWidth),
Math.floor(Math.random() * window.innerHeight)
);
}
//ボールをブラウザに描画
for (var i = 0; i <= 20; i++) {
document.write('<div class = "ball" style = "top: ' + ball[i].pos.y + 'px; left:' + ball[i].pos.x + 'px;">☆</div>');
}
CSSコード
.ball {
position: fixed
}
vueオプションの構成
Vue.jsでは単体のオブジェクトをコンポーネントと呼び、1つ以上のコンポーネント組み合わせたものがアプリケーションであると考えます。
Vue.jsアプリケーションはnew Vue({...})でコンポーネントを生成することで始まります。Vueはフレームワーク側で定義されているクラスでコンポーネントの中で使うデータやメソッドはあらかじめ引数として渡します。
Vue.jsアプリケーションはnew Vue({...})でコンポーネントを生成することで始まります。Vueはフレームワーク側で定義されているクラスでコンポーネントの中で使うデータやメソッドはあらかじめ引数として渡します。
var obj = new Vue({オブジェクト});
Vueのコンポーネントが持てる主なプロパティ
プロパティ | 役割 |
---|---|
el | コンポーネントのインスタンスをどのHTML要素に結びつけるかを定義する |
data | コンポーネントが保持するデータを定義する |
methods | コンポーネントが持つメソッドを定義する |
filters | コンポーネントが持つフィルターを定義する |
computed | コンポーネントが持つ算出プロパティを定義する |
watch | コンポーネントが持つウォッチャを定義する |
※注 | コンポーネントのライフルハックを定義する |
var app = new Vue({プロパティ名: 値, プロパティ名: 値,...});
コンポーネントのライフサイクルハック
ハック名 | 発生するタイミング |
---|---|
beforeCreate | コンポーネントのインスタンスが生成された直後 |
created | コンポーネントのインスタンスが生成され、Vueがコンポーネントのリアクティブデータを監視する準備が終わったとき |
beforeMount | コンポーネントのインスタンスがDOMと結びつく直前 |
mounted | コンポーネントのインスタンスがDOMと結びついた直後 |
beforeUpdate | コンポーネントの持つリアクティブデータが更新され、DOMに反映される直前 |
updated | コンポーネントの持つリアクティブデータが更新され、DOMに反映された直後 |
beforeDestroy | コンポーネントのインスタンスが破棄される直前 |
destroyed | コンポーネントのインスタンスが破棄された直後 |
コンポーネントのデータを初期化したいとき、サーバーからデータを読み込むような複雑な処理が必要な場合にcreatedライフサイクルハックに初期化処理を記述する
●ディレクティブ
コンポーネントを結びつけたHTML要素はVueの監視下に置かれ「v-」ではじまる独自 の属性を併用することによって、様々な機能が利用できます。これらをディレクティブと呼びます
●スコープ
プログラム内で扱うデータには有効範囲があります。たとえば関数の中で宣言した変数は、 関数の外側のプログラムからは参照できません。関数の中でのみ有効なスコープをローカルスコープ、関数の外側のどこからでも参照できるスコープをグローバルスコープと呼びます。
コンポーネントを結びつけたHTML要素はVueの監視下に置かれ「v-」ではじまる独自 の属性を併用することによって、様々な機能が利用できます。これらをディレクティブと呼びます
●スコープ
プログラム内で扱うデータには有効範囲があります。たとえば関数の中で宣言した変数は、 関数の外側のプログラムからは参照できません。関数の中でのみ有効なスコープをローカルスコープ、関数の外側のどこからでも参照できるスコープをグローバルスコープと呼びます。