Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Vue.jsで遊んでみよう
Search
ショウノシオリ
June 22, 2017
Programming
0
93
Vue.jsで遊んでみよう
2017/6/22 v-osakaの登壇資料です。
かなり超初心者向けの内容です。
ショウノシオリ
June 22, 2017
Tweet
Share
More Decks by ショウノシオリ
See All by ショウノシオリ
Nuxt / Vue 開発でやりがちな 「読みづらい」「わかりづらい」コード
sshono1210
0
240
開発チームのリーダーとしてどうあるべきか?
sshono1210
3
1.2k
Nuxt.js のディレクトリ
sshono1210
0
2.9k
Nuxt.js で SSR 対応する
sshono1210
1
2.3k
array_merge と array_push の違いについて
sshono1210
0
540
全くデザインを勉強したことのないエンジニアが「なるほどデザイン」を読んで少しだけ勉強した話
sshono1210
0
240
Vue.js の methods と computed
sshono1210
0
120
すぐに使える ES2015 の基本構文3つ
sshono1210
0
85
肌で感じたディレクションとマネジメント
sshono1210
0
78
Other Decks in Programming
See All in Programming
AIコードレビューがチームの"文脈"を 読めるようになるまで
marutaku
0
310
Herb to ReActionView: A New Foundation for the View Layer @ San Francisco Ruby Conference 2025
marcoroth
0
240
20 years of Symfony, what's next?
fabpot
2
310
無秩序からの脱却 / Emergence from chaos
nrslib
2
12k
WebRTC と Rust と8K 60fps
tnoho
2
1.9k
AIエージェントを活かすPM術 AI駆動開発の現場から
gyuta
0
230
CloudNative Days Winter 2025: 一週間で作る低レイヤコンテナランタイム
ternbusty
7
1.9k
堅牢なフロントエンドテスト基盤を構築するために行った取り組み
shogo4131
6
1.9k
TUIライブラリつくってみた / i-just-make-TUI-library
kazto
1
310
20251127_ぼっちのための懇親会対策会議
kokamoto01_metaps
2
400
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
210
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
110
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.1k
Fireside Chat
paigeccino
41
3.7k
RailsConf 2023
tenderlove
30
1.3k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Side Projects
sachag
455
43k
How to Ace a Technical Interview
jacobian
280
24k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
120
20k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.2k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
Transcript
Vue.js で遊んでみよう
自己紹介 ショウノシオリ @shosho_egg ・株式会社 chatbox エンジニア ・フロントやったり、 PHPやったり ・Laravel と
Vue.js で管理画面を作ったりしています ・Qiita:shosho
アジェンダ ▷ 0. Vue.js とは? ▷ 1. 準備をしよう ◦ インストール
▷ 2. 「Hello Vue!」を表示する ◦ 基本的なVueの記法 ▷ 3. ボタンを押してメッセージを変えよう ◦ methodsで関数を登録 ◦ @click で関数を呼び出す ▷ 4. フォーム値をリアルタイムで出力してみよう ◦ 双方向バインディング v-model ▷ 5. 最初にアラートを出してみよう ◦ created ◦ ライフサイクルダイアグラム
0. Vue.js とは?
初心者でも触りやすいJSフレームワーク ▷ 「少しずつ始められて、柔軟に使えるJSフレームワーク」 といった感じ ◦ 「見た目」と「データ」を分けて記述 するので、「見た目だけの変更」など に対応しやすい ◦ モノリシックなフレームワークではなく、部分的に利用可能
▷ 最新 ver. は 2.x ▷ ドキュメントが充実 ◦ 英語 https://vuejs.org/ ◦ 日本語 https://jp.vuejs.org/
シンプルなので組み合わせて使うとよい◎ ▷ APIを叩いたりはできないので、他のライブラリなどを利 用する ◦ superagent を利用したり ◦ データをごっそりAPI経由で送れるので、Laravel のBladeと組み合わ
せて使ってみたりしてます
1. 準備
準備をしよう ▷ ドキュメント通りにすればOK ◦ 日本語ドキュメント https://jp.vuejs.org/v2/guide/installation.html ▷ 開発 / 本番モードがあるので注意
2. 「Hello Vue!」
$(()=>{ var app = new Vue({ el : ‘#app’, data
: { message: ‘Hello Vue!’ } }); }); ▷ 動かし方:new Vue({...}) と書く ▷ 適用範囲:el で指定 ◦ el がないと動かない ◦ 今回は id で指定したが、クラス指定でも動く ▷ データの記述場所:data 「Hello Vue!」を表示する(JS側)
<div id=”app”> <p>{{ message }}</p> </div> ▷ {{ message }}
でデータバインディングができる ▷ el の指定を忘れないこと 「Hello Vue!」を表示する(HTML側)
結果 ▷ ブラウザに「Hello Vue!」と出力される
3. クリックイベント
data : { message: ‘Hello Vue!’ }, methods : {
changeMessage(){ this.message = ‘How are you?’; } } ▷ 関数を登録:methods ◦ this.message で登録した data にアクセスできる ◦ changeMessage 関数を呼び出すと this.message を違うメッ セージで代入 ボタンを押してメッセージを変えよう(JS側)
<div id=”app”> <p>{{ message }}</p> <button @click=”changeMessage”>click Here!!</button> </div> ▷
@click でイベントが発動する ◦ ボタンが押されると methods の changeMessage が実行される ▷ @click は v-on:click の略 ボタンを押してメッセージを変えよう(HTML側)
結果 ▷ 変わります
4. 双方向バインディング
▷ 双方向バインディング:v-model ◦ フォームの値を動的に取得することができる ▷ データが双方向でバインディング(紐付け)されるため、フォーム値を 変更すると、{{ comment }} 内もリアルタイムで変わる
フォーム値をリアルタイムで出力してみよう (HTML側) <input type=”text” v-model=”comment”/> <p>確認:{{ comment }}</p>
▷ JS側で v-model の登録を忘れずに ◦ data で登録 ◦ 初期値が必要(今回は空の ‘’
で) ◦ 登録していないと {{ comment }} がテキストとして認識される フォーム値をリアルタイムで出力してみよう (JS側) data : { message: ‘Hello Vue!’, comment: ‘’ },
結果 ▷ 入力フォームに入れた値が「確認」の右横に表示される ◦ 入力値を変えると表示されるメッセージも変わる
5. ライフサイクルダイアグラム
▷ ブラウザを最初に読み込んだ時にアラート表示を実行 ▷ Vue 生成時に呼ぶ:created ◦ created が呼ばれた時にはまだ data の中身は読み込まれない
最初にアラートを出してみよう(JS側) methods : { changeMessage(){ this.message = ‘How are you?’; } }, created(){ alert(‘Vue.jsをはじめよう!’); }
ライフサイクルダイアグラム ▷ https://jp.vuejs.org/v2/guide/instance.html#ライフサイクルダイアグ ラム ◦ observe data:データがあるのか等のチェックはするが、まだデー タは埋め込まれない ◦ createdの時点にはまだ
data が入らない ◦ 赤字:イベント ◦ 実践:否が応でも進む方向 ◦ 点線:場合によって待ったりする方向 ◦ mountされる:データがはめ込まれる ◦ destroy:コンポーネントとかを読み終わったら。
結果 ▷ created が呼び出された段階ではまだ data が呼び出されていないので {{ message }} {{
comment }} のようになっている
他にもよく使うもの ▷ v-if ▷ v-for ▷ componentに分けたり
Vue.js でつくりたいもの ▷ 個人的に Vue.js で作っていた「持ち物アプリ」を完成 させたい ◦ SPAっぽいやつ
Qiita記事 ▷ Vue.js をちょっと使ってみる http://qiita.com/shosho/items/38273d099a41acd341c2 ▷ Vueにデバッグ関数を追加 http://qiita.com/shosho/items/7960293de6c6663a5a37 ▷ Vue.js
の「ライフサイクルダイアグラム」の見方 http://qiita.com/shosho/items/8a6692e773eb8175498a ▷ Vue.js のデータバインディングとレンダリング http://qiita.com/shosho/items/d2889b2e806d6a756d70 ▷ Vue.js の v-if をつけるとき http://qiita.com/shosho/items/7fa3235ff9cc2dc7b6db
Thanks! Any questions? You can find me at: @username
[email protected]