Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Vue.jsで遊んでみよう
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
ショウノシオリ
June 22, 2017
Programming
120
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Vue.jsで遊んでみよう
2017/6/22 v-osakaの登壇資料です。
かなり超初心者向けの内容です。
ショウノシオリ
June 22, 2017
More Decks by ショウノシオリ
See All by ショウノシオリ
Nuxt / Vue 開発でやりがちな 「読みづらい」「わかりづらい」コード
sshono1210
0
280
開発チームのリーダーとしてどうあるべきか?
sshono1210
3
1.2k
Nuxt.js のディレクトリ
sshono1210
0
3k
Nuxt.js で SSR 対応する
sshono1210
1
2.3k
array_merge と array_push の違いについて
sshono1210
0
570
全くデザインを勉強したことのないエンジニアが「なるほどデザイン」を読んで少しだけ勉強した話
sshono1210
0
260
Vue.js の methods と computed
sshono1210
0
140
すぐに使える ES2015 の基本構文3つ
sshono1210
0
110
肌で感じたディレクションとマネジメント
sshono1210
0
100
Other Decks in Programming
See All in Programming
AIエージェントで 変わるAndroid開発環境
takahirom
2
700
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
350
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
150
言語を使う側から、作る側へ。 自作 Lisp で得た新たな気づき。
andpad
0
130
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
170
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
210
yield再入門 #phpcon
o0h
PRO
0
700
The Bowling Game- From Imperative to Functional Programming - Part 1
philipschwarz
PRO
0
340
はてなアカウント基盤 State of the Union
cockscomb
1
1.3k
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
8
5.3k
共通化で考えるべきは、実装より公開する型だった
codeegg
0
270
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
390
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.1k
Technical Leadership for Architectural Decision Making
baasie
3
440
HDC tutorial
michielstock
2
750
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
350
Exploring anti-patterns in Rails
aemeredith
3
450
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
72
40k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
How to train your dragon (web standard)
notwaldorf
97
6.7k
The Curse of the Amulet
leimatthew05
2
13k
Ruling the World: When Life Gets Gamed
codingconduct
0
290
The Language of Interfaces
destraynor
162
27k
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]