Vue.js

基礎からメモ: Vue.js CH9-p302 ネストされた複雑なページ

ネストされたルート定義をすると、より複雑な画面遷移をすることができる。 これまでの「Product」のコンポーネントは、商品詳細と商品レヴューを表示させるためのベースとし、その中に3つのコンポーネントを定義する。 フォルダ構成としては、viewsの中にH…

基礎からメモ: Vue.js CH9-p295 URLパラメータ付きの動的ページ

簡単な商品一覧ページのサンプルを作る。 src/views/Home.vueとsrc/main.js、src/App.vueは前回と同じ。 まず商品一覧ページと商品詳細ページのコンポーネントを作る。

基礎からメモ: Vue.js CH9-p284 Vue Router の導入と単純なSPA

Vue Router を導入してごく単純なSPAを構築するまで。

基礎からメモ: Vue.js CH8-p278 その他の機能やオプション

ストアの状態監視 Vuexで定義されたアプリケーションレベルのウォッチャは、コンポーネントより先に呼び出される。

基礎からメモ: Vue.js CH8-p270 モジュールでストアを分割する

モジュールの機能を使って、ストアを名前空間で分割し管理することができる。

基礎からメモ: Vue.js CH8-p268 ヘルパーでコンポーネントとストアをバインドする

ゲッターやミューテーションを使うロジックを、コンポーネントの算出プロパティやメソッドに全て記述するのは冗長になる。そういう場合にヘルパーが用意されている。 あらかじめ必要なヘルパーを読み込む。

基礎からメモ: Vue.js CH8-p264 コンポーネントでストアを使う

コンポーネントでストアを使う 親子間コンポーネントで状態管理する例 まずsrc/store.jsを定義

基礎からメモ: Vue.js CH7-p252 Vuexの導入

Vuex は Vueアプリケーションで使うデータとその状態を一元管理する「状態管理」のための拡張ライブラリ。 深くネストされたコンポーネント構造では、コンポーネント間でpropsと$emitを使って各コンポーネントどうしのやり取りをする必要があるが、Vuex を使…

基礎からメモ: Vue.js CH7-p231 Vue CLIの導入

Vue CLI のインストール Node.js と npm はインスト済みとする。 次のコマンドで Vue CLI をグローバルインストール $ npm install -g vue-cli

基礎からメモ: Vue.js CH6-p210 SVGのトランジションとトランジションフック

SVGのトランジション SVGでマークアップされた要素にトランジション。 図形が入れ替わる。

基礎からメモ: Vue.js CH6-p205 リストトランジション

リストの要素をグループ化して、追加、削除、移動のアニメーションを行う。 <transition-group>タグを使いtag属性でタグ名を指定する。tag属性を省略するとspan要素でラップされる。リストトランジションではキーの設定が必須。</transition-group>

基礎からメモ: Vue.js CH6-p198 単一要素トランジション

<transition>タグの中に1つだけ存在する要素に対し使用するものを「単一要素トランジション」と呼ぶ。</transition>

基礎からメモ: Vue.js CH6-p195 基本的なトランジションの使い方

トランジション用クラスの適用 トランジション効果を適用したい要素を<transition>タグで囲むことで、トランジション用のクラスが適用される。</transition>

基礎からメモ: Vue.js CH5-p184 その他の機能やオプション

関数型コンポーネント functionalオプションを付けることで、関数型コンポーネント(状態とインスタンスを持たない)を定義できる。

基礎からメモ: Vue.js CH5-p179 テンプレートの定義方法

テンプレートの種類 templateオプション 今まで出てきた書き方。ES2015が使えるなら、テンプレートリテラルが便利 Vue.component('my-calendar', { template: `<div> <p>..........</p> </div>` }); 単一ファイルコンポーネントを使わない場合は、このtemplateオプションが推奨…

基礎からメモ: Vue.js CH5-p175 コンポーネントの双方向データバインディング

親子間でデータを受け渡ししたい場合、親から子へはpropsを介して渡す、子から親へはイベントを$emitするという決まりになっていた。 $emitを介さずに子からpropsで渡された値を更新しようとするとエラーになった。これは親のデータを子から簡単に変更できて…

基礎からメモ: Vue.js CH5-p169 スロットを使ったコンポーネントのカスタマイズ

スロットという機能を使って、親コンポーネントから子コンポーネントにテンプレートの一部を差し込むことができる。 これによって子コンポーネントの一部分をカスタマイズしたりできる。

基礎からメモ: Vue.js CH5-p166 親から子のイベントやメソッドを使う

$refsを使って、親から子のメソッドを使ったり、イベントを発火させたりできる。

基礎からメモ: Vue.js CH5-p161 子から親へのコンポーネント間通信

カスタムイベントと$emit 子コンポーネントの状態に対応して親コンポーネントに何らかのアクションを起こさせるとか、子コンポーネントが持つデータを親に渡すなどの場合、カスタムイベントとインスタンスメソッドの$emitを使う。

基礎からメモ: Vue.js CH5-p159 親子間で受け取るデータのデータ型を指定する

propsで受け取るデータのデータ型を指定する propsで受け取るデータのデータ型を指定しておくことができる。受け取るデータ名にStringなどのデータ型を指定しておく。

基礎からメモ: Vue.js CH5-p153 コンポーネント間の通信

コンポーネントのスコープ コンポーネントのインスタンスはそれぞれが自分のスコープを持っている。 スコープ内のデータやメソッドには、thisを使ってアクセスできる。 this.message // スコープ内データ this.update // スコープ内メソッド コンポーネント…

基礎からメモ: Vue.js CH5-p146 コンポーネントとは

コンポーネントとは、機能を持つUI部品ごとにテンプレートとJavaScriptを1つのセットにして、開発管理するための仕組み。

基礎からメモ: Vue.js CH4-p143 更新後のDOMにアクセスする

仮想DOMによるデータの更新は非同期に行われるため、更新後のDOMを操作するためにはDOMの更新を待ち受ける仕組みであるnextTickを使用する。

基礎からメモ: Vue.js CH4-p137 カスタムディレクティブでデータを監視しながらDOMを操作する

カスタムディレクティブの仕組みを使って、v-bindのようなディレクティブを自作することができる。 ただしデータバインディングと違い仮想DOMではないので、$elや$refsと同様に描画の最適化はされない。

基礎からメモ: Vue.js CH4-p134 フィルタでテキストの変換処理

フィルタでテキストの変換処理ができる。 フィルタはローカルまたはグローバルに登録して使用する。ただしthisへのアクセスはできない。

基礎からメモ: Vue.js CH4-p128 ウォッチャーの使い方

コンポーネントのwatchオプションに、監視するデータの名前と、変化した時に呼び出されるハンドラ関数を定義する。新旧データ比較のために、ハンドラの引数として第一引数に「新い値」、第二引数に「古い値」を受け取れる。

基礎からメモ: Vue.js CH4-p120 算出プロパティの使い方

算出プロパティ 算出プロパティはcomputedプロパティに定義した関数で任意のデータを処理するもの。

基礎からメモ: Vue.js CH3-p114 マウント要素外のイベントと操作

スクロールイベントを制御する マウントした要素の外ではv-onディレクティブが使えない。スクロールイベントなど window や body でのイベントをVueインスタンスから制御するには、addEventListenerなどを使って工夫する。

基礎からメモ: Vue.js CH3-p105 フォーム入力バインディング

v-modelディレクティブ v-modelディレクティブを使って、フォームの入力値や選択値をデータと同期させる(双方向データバインディング)。

基礎からメモ: Vue.js CH3-p103 キーハンドリング

キー修飾子 特定のキーが入力された時のみハンドラが呼び出されるようにする。 一般的によく使用されるキーはエイリアスが登録されている。