×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Vue.jsの機能を使って 色々作ってみた (株)ロジカルスタジオ 土谷 隆秀
Slide 2
Slide 2 text
当発表の概要 ・Vue.jsは非常に書きやすいフレームワークである ・ディレクティブ、ウォッチャー、バインディング等、 便利な機能が用意されている ・Vue.jsの機能を使っていろんなものを作ってみたので、 当発表ではそれをお見せします
Slide 3
Slide 3 text
自己紹介 名前:土谷 隆秀 所属:(株)ロジカルスタジオ 職業:コーダー / ブログライター / 勉強会スタッフ Javascript歴:約半年 Vue.js歴:3ヶ月 弊社ブログにて記事を書いています(T.K) http://develop.logical-studio.com/
Slide 4
Slide 4 text
ハンバーガーメニュー @clickの使用とClassのバインディング
Slide 5
Slide 5 text
ハンバーガーメニューとは ボタンを押すと展開するナビゲーションメニュー スマホサイトなどでよく使われる https://logical-studio.com/
Slide 6
Slide 6 text
ハンバーガーメニューの設計 1.ボタン、メニュー、オーバーレイを作る(略) 2.@clickで、ボタンをクリックするとメニューが出るようにする 3.CSSにtransitionを追記し、なめらかに動くようにする https://codepen.io/ls_pr/pen/zYxLRwm
Slide 7
Slide 7 text
2.@clickで、ボタンをクリックするとメニューが 出るようにする ・pタグ(ボタン)を押すことで、 isOpenの真偽値を切り替える 記述: @click=“isOpen=!isOpen” ・isOpen=trueの時、 #wrapにクラス”active”をつける 記述: :class=“{ active : isOpen }”
Slide 8
Slide 8 text
2.@clickで、ボタンをクリックするとメニューが 出るようにする CSSで、 ・表示前:activeをつけずに記述 ・表示後:activeをつけて記述 表示方法はお好みで 例:右からスライド、中央から拡大、など ※フェードインの場合は注意(後述) v-ifを使うやり方もあるが省略
Slide 9
Slide 9 text
3.CSSにtransitionを追記し、なめらかに動くよ うにする オーバーレイ部分はフェードインする ■問題点 CSSに #hoge{opacity:0;} .active #hoge{opacity:1;} と書くと、要素は残ったまま →要素の下にあるものを操作できない
Slide 10
Slide 10 text
3.CSSにtransitionを追記し、なめらかに動くよ うにする – 完成 ■解決法 ●CSS 表示前:{width:0;height:0;opacity:0;} 表示後:{width:100%;height:100%;opacity:1;} ●CSS – transition 右図を参照 https://codepen.io/ls_pr/pen/zYxLRwm 同様にモーダルウインドウも作成可能
Slide 11
Slide 11 text
スクロール量により状態が変わるヘッダー mountedの使用
Slide 12
Slide 12 text
作りたいもの サンプルをご覧ください https://codepen.io/ls_pr/pen/eYmQgpr
Slide 13
Slide 13 text
設計 1.変化前の状態をマークアップ・CSSを記述(略) 2.mountedでイベントリスナーを追加し、スクロール位置を取得 3.変化後の状態をCSSで記述
Slide 14
Slide 14 text
2.mountedでイベントリスナーを追加し、 スクロール位置を取得 mouted:DOMが作成された後一度実行される この時点でイベントリスナーを追加 ●右のjsの解説 ・mountedで、スクロール/ロードされた時点で 関数”setCoordinate”を実行するよう設定 ・setCoordinate: スクロール位置をcoordinateYに代入する関数
Slide 15
Slide 15 text
2.mountedでイベントリスナーを追加し、 スクロール位置を取得 coordinateY(=スクロール位置)が40より大の時 #appにクラス”fixed”を追加
Slide 16
Slide 16 text
3.変化後の状態をCSSで記述 ネスト化しやすい https://codepen.io/ls_pr/pen/eYmQgpr
Slide 17
Slide 17 text
入力内容によってエラーメッセージを出す computedの使用
Slide 18
Slide 18 text
作りたいもの ●フォーム内の文字が10文字以内の時 エラーメッセージなし ●フォーム内の文字が11文字より多い時 エラーメッセージを出す https://codepen.io/ls_pr/pen/MWYxgrW
Slide 19
Slide 19 text
設計 1.フォームとエラーメッセージ表示箇所を作成 2.computedを用いてメッセージの内容を作成 3.マスタッシュ({{ }})でエラーメッセージを表示 4.エラー時にフォームのcssを変える
Slide 20
Slide 20 text
1.フォームとエラーメッセージ表示箇所を作 成 input内の値を、inputTextとバインディング
Slide 21
Slide 21 text
2.computedを用いてメッセージの内容を作 成 ■computed:算出プロパティ methodsと違い、常に値が更新される ●右のjsの解説 ・inputTextが10文字より多い時 errorMessage=’10文字より多いです’ ・inputTextが10文字以内の時 errorMessage=‘’
Slide 22
Slide 22 text
3.マスタッシュ({{ }})でエラーメッセージを表 示 {{ errorMessage }}
Slide 23
Slide 23 text
4.エラー時にフォームのcssを変える errorMessageがある(errorMessage !== ‘’)の時 クラスをつけ、スタイルを変更 https://codepen.io/ls_pr/pen/MWYxgrW
Slide 24
Slide 24 text
以上です ありがとうございました