SlideShare a Scribd company logo
マネージメントサービス株式会社
Copyright Management Service Corp. All Rights Reserved.Copyright Management Service Corp. All Rights Reserved.
Vue.js
マネージメントサービス株式会社
山本 友樹
2020
03-04
アウトプット#1
Copyright Management Service Corp. All Rights Reserved.
1.Vue.jsとは
2.特徴
3.使い方
4.勉強に使用したもの
5.まとめ
2
アジェンダ
Copyright Management Service Corp. All Rights Reserved.
1.Vue.jsとは
2.特徴
3.使い方
4.勉強に使用したもの
5.まとめ
3
Copyright Management Service Corp. All Rights Reserved.
Vue.jsとは
JavaScriptのフレームワーク
4
GoogleにおいてAngularJSを使用した開発に携わったエヴァン・ヨーに
よって開発。(Wikipediaより)
Copyright Management Service Corp. All Rights Reserved.
フレームワークライブラリピュア
JavaScriptの流れ
JavaScript
5
jQuery
AngulerJS
React
Vue.js
etc...
Copyright Management Service Corp. All Rights Reserved.
1.Vue.jsとは
2.特徴
3.使い方
4.勉強に使用したもの
5.まとめ
6
Copyright Management Service Corp. All Rights Reserved.
特徴
1.コンポーネント
2.DOM操作が楽、早い
7
Copyright Management Service Corp. All Rights Reserved.
1.コンポーネント
• SPAに用いられるコンポーネント開発に向いたフレーム
ワークになっています。
開発者はコンポーネント毎に開発できるようになっています。
8
Copyright Management Service Corp. All Rights Reserved.
SPA
• Single Page Applicationの略
1つの画面のアプリケーション。
→今どきの1画面でいろいろできるアプリ。
開発者からすると1つの画面でいろいろな機能を作る必要がある
→1画面1担当者とすると1人の担当者が大変・・・
→1画面の中でも機能ごとに開発したい
→コンポーネント
9
Copyright Management Service Corp. All Rights Reserved.
コンポーネント
• 構成要素。部品。画面内の1機能。
部品なので再利用も可能。
下記はA~Dの4つのコンポーネントを使用したイメージ
10
A
B CD D
Copyright Management Service Corp. All Rights Reserved.
コンポーネント使わなくても・・・
• コンポーネントを使用せずとも、htmlファイルとjsファイルをimport
すれば同じことできるのでは?
→できる。
あくまで、Vue.jsは、javascriptでできたフレームワークなので使
用しなくても可能。
11
Copyright Management Service Corp. All Rights Reserved.
2.DOM操作が楽、早い
• Javascriptの値の紐づけを記載することで、DOMの変更を自動で
行ってくれる。
• 仮想DOMという仕組みを使用することで、表示しているDOMの
中で必要な箇所のみDOMを変更する。DOM操作が必要最小限なので早
い。
12
Copyright Management Service Corp. All Rights Reserved.
仮想DOM
• DOM要素生成する前に、Javascript上で仮想的にDOM要素を作成し、
次回以降は、最小限(差分のみ)のDOM操作することで、表示を早くす
る仕組み。
→時間の掛かるDOM操作を最小限にする。
13
Copyright Management Service Corp. All Rights Reserved.
仮想DOM前提
1.掛かる時間
仮想DOMの差分抽出 <<< DOM操作
※仮想DOMの差分抽出は、プログラム内のオブジェクト操作なので、
DOMに比べ高速。
2.Vue.jsを使わなくても、最小限のDOM操作は可能。
あくまでフレームワークなので可能です。
ただ、開発者はフレームワークにまかせて、ビジネスロジックや使い勝
手の開発に時間を割きましょうよということ。
14
Copyright Management Service Corp. All Rights Reserved.
1.Vue.jsとは
2.特徴
3.使い方
4.勉強に使用したもの
5.まとめ
15
Copyright Management Service Corp. All Rights Reserved.
使い方
1.HTMLのscriptタグで読み込む
読み込むファイルは、CDN or ダウンロードしたファイルを指定する
2.Vue.jsのルールに沿ったコーディングをする
16
Copyright Management Service Corp. All Rights Reserved.
HTMLのscriptタグで読み込む
• CDN
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
• ダウンロード
<script src=“../vue.js"></script>
17
ダウンロードした
ファイルを指定
Copyright Management Service Corp. All Rights Reserved.
Vue.jsのルールに沿ったコーディングをする
フレームワークなのでルールがあります。
ルールに沿うことで、Vue.jsが様々なことを良しなにやってくれます。
ルールの一部を紹介します。
18
Copyright Management Service Corp. All Rights Reserved.
<div id="app">
{{ message }}
</div>
19
new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
html
JS
html
テンプレート構文(変数の表示)
結果
Copyright Management Service Corp. All Rights Reserved.
<div id="app">
{{ message }}
</div>
20
new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})
html
JS
html
テンプレート構文(変数の表示)
Vueを使用する要素を
指定
二重中括弧で、dataで
定義した変数を指定
Copyright Management Service Corp. All Rights Reserved.
<div id="app">
{{ hello() }}
</div>
21
new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
},
methods: {
hello: function() {
return 'hello!'
}
}
})
html
JS
html
テンプレート構文(関数の使用)
結果
Copyright Management Service Corp. All Rights Reserved.
<div id="app">
{{ hello() }}
</div>
22
new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
},
methods: {
hello: function() {
return 'hello!'
}
}
})
html
JS
html
テンプレート構文(関数の使用)
二重中括弧の中で
関数を指定
Copyright Management Service Corp. All Rights Reserved.
<div id="app">
<p>{{ num }}回 </p>
<button v-on:click="countUp()">+1</button>
</div>
23
new Vue({
el: '#app',
data: {
num: 0
},
methods: {
countUp: function() {
return this.num++
}
}
})
html
JS
html
テンプレート構文(v-on)
結果
ボタンを押すごと
にカウントアップ
Copyright Management Service Corp. All Rights Reserved.
<div id="app">
<p>{{ num }}回 </p>
<button v-on:click="countUp()">+1</button>
</div>
24
new Vue({
el: '#app',
data: {
num: 0
},
methods: {
countUp: function() {
return this.num++
}
}
})
html
JS
html
テンプレート構文(v-on)
①関数呼び出し
②numをインクリメント
③num表示
click以外にもイベ
ント多数あり
Copyright Management Service Corp. All Rights Reserved.
テンプレート構文(便利なところ)
• dataの値が変わったら自動でDOM操作をしてくれる。
下記のような書き換え処理不要
1.ピュアのJavascriptの場合
2.jQuerryの場合
25
document.getElementById('number').innerHTML (number)
$(‘#number').text(number)
Copyright Management Service Corp. All Rights Reserved.
1.Vue.jsとは
2.特徴
3.使い方
4.勉強に使用したもの
5.まとめ
26
Copyright Management Service Corp. All Rights Reserved.
勉強に使用したもの
• 本
これからはじめるVue.js実践入門
• 動画(Udemy)
超Vue JS 2 入門 完全パック - もう他の教材は買わなくてOK!
(Vue Router, Vuex含む)
・便利なもの
jsfiddle
→ブラウザ上でHTML・CSS・JSを記述して動作を確認が
簡単にできる
https://jsfiddle.net
27
Copyright Management Service Corp. All Rights Reserved.
1.Vue.jsとは
2.特徴
3.使い方
4.勉強に使用したもの
5.まとめ
28
Copyright Management Service Corp. All Rights Reserved.
まとめ
• Vue.jsはフレームワーク。
DOM操作を含めていろいろなことをよしなにやってくれる。
• 今回、紹介した使い方は初歩なのでまだまだいろいろな機能があります。
(ライフサイクル/Vue CLI / Vuex/etc・・・)
• Vue.jsを勉強するときには、Javascriptの知識も必要になります。
わからないことがあったときには、Vue.jsがわからないのか、
Javascriptがわからないのか整理して調べましょう。
29
Copyright Management Service Corp. All Rights Reserved.
参考資料
• 公式ページ
https://jp.vuejs.org/index.html
• 2019年JavaScriptのおすすめフレームワーク完全版!各フレームワー
クを徹底比較!
https://www.high-performer.jp/engineer/trend/javascript-
framework/
• Wikipedia
https://ja.wikipedia.org/wiki/
• リアクティブシステムが注目を集める理由
https://thinkit.co.jp/article/9185
30

More Related Content

What's hot

Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Kei Yagi
 
Angular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overviewAngular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overview
Mitsuru Ogawa
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
Akira Inoue
 
初めてのvue.js(2.x系)
初めてのvue.js(2.x系)初めてのvue.js(2.x系)
初めてのvue.js(2.x系)
健人 井関
 
Android Lecture #04 @PRO&BSC Inc.
Android Lecture #04 @PRO&BSC Inc.Android Lecture #04 @PRO&BSC Inc.
Android Lecture #04 @PRO&BSC Inc.
Yuki Higuchi
 
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revWindows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revShotaro Suzuki
 
WordPress widget api
WordPress widget apiWordPress widget api
WordPress widget api
Takami Kazuya
 
Lighting componentワークブック(経費精算アプリ)
Lighting componentワークブック(経費精算アプリ)Lighting componentワークブック(経費精算アプリ)
Lighting componentワークブック(経費精算アプリ)
Akihiro Iwaya
 
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
Masatoshi Tada
 
Rails基礎講座 part.2
Rails基礎講座 part.2Rails基礎講座 part.2
Rails基礎講座 part.2
Jun Yokoyama
 
Brush up your Coding! 2013 winter
Brush up your Coding! 2013 winterBrush up your Coding! 2013 winter
Brush up your Coding! 2013 winter
Shogo Sensui
 

What's hot (11)

Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
Vue.jsの関連ツール・ライブラリ(Vuex, Vue-Router, Nuxt)
 
Angular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overviewAngular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overview
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
初めてのvue.js(2.x系)
初めてのvue.js(2.x系)初めてのvue.js(2.x系)
初めてのvue.js(2.x系)
 
Android Lecture #04 @PRO&BSC Inc.
Android Lecture #04 @PRO&BSC Inc.Android Lecture #04 @PRO&BSC Inc.
Android Lecture #04 @PRO&BSC Inc.
 
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revWindows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
 
WordPress widget api
WordPress widget apiWordPress widget api
WordPress widget api
 
Lighting componentワークブック(経費精算アプリ)
Lighting componentワークブック(経費精算アプリ)Lighting componentワークブック(経費精算アプリ)
Lighting componentワークブック(経費精算アプリ)
 
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
 
Rails基礎講座 part.2
Rails基礎講座 part.2Rails基礎講座 part.2
Rails基礎講座 part.2
 
Brush up your Coding! 2013 winter
Brush up your Coding! 2013 winterBrush up your Coding! 2013 winter
Brush up your Coding! 2013 winter
 

Similar to 20200304 vuejs

Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0
Toshiro Shimizu
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Akira Inoue
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejsTakayoshi Tanaka
 
SimpleModeler
SimpleModelerSimpleModeler
SimpleModeler
Tomoharu ASAMI
 
[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration
Kazuchika Sekiya
 
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
Eucen Stew
 
Vue.js で XSS
Vue.js で XSSVue.js で XSS
Vue.js で XSS
tobaru_yuta
 
中・大規模でLaravelを導入するTips
中・大規模でLaravelを導入するTips中・大規模でLaravelを導入するTips
中・大規模でLaravelを導入するTips
Kenjiro Kubota
 
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発
daisuke-a-matsui
 
Mithril - 軽量/高速なMVCフレームワーク
Mithril - 軽量/高速なMVCフレームワークMithril - 軽量/高速なMVCフレームワーク
Mithril - 軽量/高速なMVCフレームワーク
sairoutine
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
Masayuki Wakizaka
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介david9142
 
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
Hiroyuki Ohnaka
 
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~
Yoshitaka Seo
 
Ma gician <Vue にはできないこと (1)> WeJS 37th
Ma gician <Vue にはできないこと (1)> WeJS 37th Ma gician <Vue にはできないこと (1)> WeJS 37th
Ma gician <Vue にはできないこと (1)> WeJS 37th
Eucen Stew
 
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconアバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
DeNA
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!Shinpei Ohtani
 
翻訳から始めるVue.js 入門
翻訳から始めるVue.js 入門翻訳から始めるVue.js 入門
翻訳から始めるVue.js 入門
Makoto Chiba
 
Using Windows Azure
Using Windows AzureUsing Windows Azure
Using Windows Azure
Shinji Tanaka
 
Visualforce + jQuery
Visualforce + jQueryVisualforce + jQuery
Visualforce + jQuery
Salesforce Developers Japan
 

Similar to 20200304 vuejs (20)

Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0Progressive Framework Vue.js 2.0
Progressive Framework Vue.js 2.0
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
SimpleModeler
SimpleModelerSimpleModeler
SimpleModeler
 
[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration[JavaOne Tokyo 2012] JavaFX and Web Integration
[JavaOne Tokyo 2012] JavaFX and Web Integration
 
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
Ma_gician (世界中のフロントエンダーの残業時間を減らす、新しいフロントエンドフレームワーク)<詳細版>
 
Vue.js で XSS
Vue.js で XSSVue.js で XSS
Vue.js で XSS
 
中・大規模でLaravelを導入するTips
中・大規模でLaravelを導入するTips中・大規模でLaravelを導入するTips
中・大規模でLaravelを導入するTips
 
React を導入した フロントエンド開発
React を導入したフロントエンド開発React を導入したフロントエンド開発
React を導入した フロントエンド開発
 
Mithril - 軽量/高速なMVCフレームワーク
Mithril - 軽量/高速なMVCフレームワークMithril - 軽量/高速なMVCフレームワーク
Mithril - 軽量/高速なMVCフレームワーク
 
AppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころAppiumのWebViewアプリテストの仕組みとハマりどころ
AppiumのWebViewアプリテストの仕組みとハマりどころ
 
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
[公開用]Netラボ2012年2月勉強会 asp.netmvc4 beta新機能の紹介
 
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
JavaOne 2015 報告会 @ 東京 「About MVC 1.0 & JSON-P」
 
ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~ASP.NET MVC 2 ~新機能の紹介~
ASP.NET MVC 2 ~新機能の紹介~
 
Ma gician <Vue にはできないこと (1)> WeJS 37th
Ma gician <Vue にはできないこと (1)> WeJS 37th Ma gician <Vue にはできないこと (1)> WeJS 37th
Ma gician <Vue にはできないこと (1)> WeJS 37th
 
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechconアバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
アバター着せ替えアプリ開発におけるフロントエンド技術(Vue.js活用事例) #denatechcon
 
Struts2を始めよう!
Struts2を始めよう!Struts2を始めよう!
Struts2を始めよう!
 
翻訳から始めるVue.js 入門
翻訳から始めるVue.js 入門翻訳から始めるVue.js 入門
翻訳から始めるVue.js 入門
 
Using Windows Azure
Using Windows AzureUsing Windows Azure
Using Windows Azure
 
Visualforce + jQuery
Visualforce + jQueryVisualforce + jQuery
Visualforce + jQuery
 

More from yamamotomsc

20191224 aws cloud9
20191224 aws cloud920191224 aws cloud9
20191224 aws cloud9
yamamotomsc
 
20191206_Alexaスキルを作ってみよう
20191206_Alexaスキルを作ってみよう20191206_Alexaスキルを作ってみよう
20191206_Alexaスキルを作ってみよう
yamamotomsc
 
20191129 AWS CloudFormarion
20191129 AWS CloudFormarion20191129 AWS CloudFormarion
20191129 AWS CloudFormarion
yamamotomsc
 
20191115_Cloud Front
20191115_Cloud Front20191115_Cloud Front
20191115_Cloud Front
yamamotomsc
 
20191031_Amazon Api Gateway
20191031_Amazon Api Gateway20191031_Amazon Api Gateway
20191031_Amazon Api Gateway
yamamotomsc
 
20191018 AWS Lambda
20191018 AWS Lambda20191018 AWS Lambda
20191018 AWS Lambda
yamamotomsc
 
20191011_Route 53
20191011_Route 5320191011_Route 53
20191011_Route 53
yamamotomsc
 
20190927_AWS VPC
20190927_AWS VPC20190927_AWS VPC
20190927_AWS VPC
yamamotomsc
 
20190920 AWS IAM
20190920 AWS IAM20190920 AWS IAM
20190920 AWS IAM
yamamotomsc
 
20190913 awscli
20190913 awscli20190913 awscli
20190913 awscli
yamamotomsc
 
20190906_私が使ったAWSサービス
20190906_私が使ったAWSサービス20190906_私が使ったAWSサービス
20190906_私が使ったAWSサービス
yamamotomsc
 
20190823_AMAZON EC2
20190823_AMAZON EC220190823_AMAZON EC2
20190823_AMAZON EC2
yamamotomsc
 
20190809_AWS第1歩目
20190809_AWS第1歩目20190809_AWS第1歩目
20190809_AWS第1歩目
yamamotomsc
 

More from yamamotomsc (13)

20191224 aws cloud9
20191224 aws cloud920191224 aws cloud9
20191224 aws cloud9
 
20191206_Alexaスキルを作ってみよう
20191206_Alexaスキルを作ってみよう20191206_Alexaスキルを作ってみよう
20191206_Alexaスキルを作ってみよう
 
20191129 AWS CloudFormarion
20191129 AWS CloudFormarion20191129 AWS CloudFormarion
20191129 AWS CloudFormarion
 
20191115_Cloud Front
20191115_Cloud Front20191115_Cloud Front
20191115_Cloud Front
 
20191031_Amazon Api Gateway
20191031_Amazon Api Gateway20191031_Amazon Api Gateway
20191031_Amazon Api Gateway
 
20191018 AWS Lambda
20191018 AWS Lambda20191018 AWS Lambda
20191018 AWS Lambda
 
20191011_Route 53
20191011_Route 5320191011_Route 53
20191011_Route 53
 
20190927_AWS VPC
20190927_AWS VPC20190927_AWS VPC
20190927_AWS VPC
 
20190920 AWS IAM
20190920 AWS IAM20190920 AWS IAM
20190920 AWS IAM
 
20190913 awscli
20190913 awscli20190913 awscli
20190913 awscli
 
20190906_私が使ったAWSサービス
20190906_私が使ったAWSサービス20190906_私が使ったAWSサービス
20190906_私が使ったAWSサービス
 
20190823_AMAZON EC2
20190823_AMAZON EC220190823_AMAZON EC2
20190823_AMAZON EC2
 
20190809_AWS第1歩目
20190809_AWS第1歩目20190809_AWS第1歩目
20190809_AWS第1歩目
 

20200304 vuejs

  • 1. マネージメントサービス株式会社 Copyright Management Service Corp. All Rights Reserved.Copyright Management Service Corp. All Rights Reserved. Vue.js マネージメントサービス株式会社 山本 友樹 2020 03-04 アウトプット#1
  • 2. Copyright Management Service Corp. All Rights Reserved. 1.Vue.jsとは 2.特徴 3.使い方 4.勉強に使用したもの 5.まとめ 2 アジェンダ
  • 3. Copyright Management Service Corp. All Rights Reserved. 1.Vue.jsとは 2.特徴 3.使い方 4.勉強に使用したもの 5.まとめ 3
  • 4. Copyright Management Service Corp. All Rights Reserved. Vue.jsとは JavaScriptのフレームワーク 4 GoogleにおいてAngularJSを使用した開発に携わったエヴァン・ヨーに よって開発。(Wikipediaより)
  • 5. Copyright Management Service Corp. All Rights Reserved. フレームワークライブラリピュア JavaScriptの流れ JavaScript 5 jQuery AngulerJS React Vue.js etc...
  • 6. Copyright Management Service Corp. All Rights Reserved. 1.Vue.jsとは 2.特徴 3.使い方 4.勉強に使用したもの 5.まとめ 6
  • 7. Copyright Management Service Corp. All Rights Reserved. 特徴 1.コンポーネント 2.DOM操作が楽、早い 7
  • 8. Copyright Management Service Corp. All Rights Reserved. 1.コンポーネント • SPAに用いられるコンポーネント開発に向いたフレーム ワークになっています。 開発者はコンポーネント毎に開発できるようになっています。 8
  • 9. Copyright Management Service Corp. All Rights Reserved. SPA • Single Page Applicationの略 1つの画面のアプリケーション。 →今どきの1画面でいろいろできるアプリ。 開発者からすると1つの画面でいろいろな機能を作る必要がある →1画面1担当者とすると1人の担当者が大変・・・ →1画面の中でも機能ごとに開発したい →コンポーネント 9
  • 10. Copyright Management Service Corp. All Rights Reserved. コンポーネント • 構成要素。部品。画面内の1機能。 部品なので再利用も可能。 下記はA~Dの4つのコンポーネントを使用したイメージ 10 A B CD D
  • 11. Copyright Management Service Corp. All Rights Reserved. コンポーネント使わなくても・・・ • コンポーネントを使用せずとも、htmlファイルとjsファイルをimport すれば同じことできるのでは? →できる。 あくまで、Vue.jsは、javascriptでできたフレームワークなので使 用しなくても可能。 11
  • 12. Copyright Management Service Corp. All Rights Reserved. 2.DOM操作が楽、早い • Javascriptの値の紐づけを記載することで、DOMの変更を自動で 行ってくれる。 • 仮想DOMという仕組みを使用することで、表示しているDOMの 中で必要な箇所のみDOMを変更する。DOM操作が必要最小限なので早 い。 12
  • 13. Copyright Management Service Corp. All Rights Reserved. 仮想DOM • DOM要素生成する前に、Javascript上で仮想的にDOM要素を作成し、 次回以降は、最小限(差分のみ)のDOM操作することで、表示を早くす る仕組み。 →時間の掛かるDOM操作を最小限にする。 13
  • 14. Copyright Management Service Corp. All Rights Reserved. 仮想DOM前提 1.掛かる時間 仮想DOMの差分抽出 <<< DOM操作 ※仮想DOMの差分抽出は、プログラム内のオブジェクト操作なので、 DOMに比べ高速。 2.Vue.jsを使わなくても、最小限のDOM操作は可能。 あくまでフレームワークなので可能です。 ただ、開発者はフレームワークにまかせて、ビジネスロジックや使い勝 手の開発に時間を割きましょうよということ。 14
  • 15. Copyright Management Service Corp. All Rights Reserved. 1.Vue.jsとは 2.特徴 3.使い方 4.勉強に使用したもの 5.まとめ 15
  • 16. Copyright Management Service Corp. All Rights Reserved. 使い方 1.HTMLのscriptタグで読み込む 読み込むファイルは、CDN or ダウンロードしたファイルを指定する 2.Vue.jsのルールに沿ったコーディングをする 16
  • 17. Copyright Management Service Corp. All Rights Reserved. HTMLのscriptタグで読み込む • CDN <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> • ダウンロード <script src=“../vue.js"></script> 17 ダウンロードした ファイルを指定
  • 18. Copyright Management Service Corp. All Rights Reserved. Vue.jsのルールに沿ったコーディングをする フレームワークなのでルールがあります。 ルールに沿うことで、Vue.jsが様々なことを良しなにやってくれます。 ルールの一部を紹介します。 18
  • 19. Copyright Management Service Corp. All Rights Reserved. <div id="app"> {{ message }} </div> 19 new Vue({ el: '#app', data: { message: 'Hello Vue!' } }) html JS html テンプレート構文(変数の表示) 結果
  • 20. Copyright Management Service Corp. All Rights Reserved. <div id="app"> {{ message }} </div> 20 new Vue({ el: '#app', data: { message: 'Hello Vue!' } }) html JS html テンプレート構文(変数の表示) Vueを使用する要素を 指定 二重中括弧で、dataで 定義した変数を指定
  • 21. Copyright Management Service Corp. All Rights Reserved. <div id="app"> {{ hello() }} </div> 21 new Vue({ el: '#app', data: { message: 'Hello Vue!' }, methods: { hello: function() { return 'hello!' } } }) html JS html テンプレート構文(関数の使用) 結果
  • 22. Copyright Management Service Corp. All Rights Reserved. <div id="app"> {{ hello() }} </div> 22 new Vue({ el: '#app', data: { message: 'Hello Vue!' }, methods: { hello: function() { return 'hello!' } } }) html JS html テンプレート構文(関数の使用) 二重中括弧の中で 関数を指定
  • 23. Copyright Management Service Corp. All Rights Reserved. <div id="app"> <p>{{ num }}回 </p> <button v-on:click="countUp()">+1</button> </div> 23 new Vue({ el: '#app', data: { num: 0 }, methods: { countUp: function() { return this.num++ } } }) html JS html テンプレート構文(v-on) 結果 ボタンを押すごと にカウントアップ
  • 24. Copyright Management Service Corp. All Rights Reserved. <div id="app"> <p>{{ num }}回 </p> <button v-on:click="countUp()">+1</button> </div> 24 new Vue({ el: '#app', data: { num: 0 }, methods: { countUp: function() { return this.num++ } } }) html JS html テンプレート構文(v-on) ①関数呼び出し ②numをインクリメント ③num表示 click以外にもイベ ント多数あり
  • 25. Copyright Management Service Corp. All Rights Reserved. テンプレート構文(便利なところ) • dataの値が変わったら自動でDOM操作をしてくれる。 下記のような書き換え処理不要 1.ピュアのJavascriptの場合 2.jQuerryの場合 25 document.getElementById('number').innerHTML (number) $(‘#number').text(number)
  • 26. Copyright Management Service Corp. All Rights Reserved. 1.Vue.jsとは 2.特徴 3.使い方 4.勉強に使用したもの 5.まとめ 26
  • 27. Copyright Management Service Corp. All Rights Reserved. 勉強に使用したもの • 本 これからはじめるVue.js実践入門 • 動画(Udemy) 超Vue JS 2 入門 完全パック - もう他の教材は買わなくてOK! (Vue Router, Vuex含む) ・便利なもの jsfiddle →ブラウザ上でHTML・CSS・JSを記述して動作を確認が 簡単にできる https://jsfiddle.net 27
  • 28. Copyright Management Service Corp. All Rights Reserved. 1.Vue.jsとは 2.特徴 3.使い方 4.勉強に使用したもの 5.まとめ 28
  • 29. Copyright Management Service Corp. All Rights Reserved. まとめ • Vue.jsはフレームワーク。 DOM操作を含めていろいろなことをよしなにやってくれる。 • 今回、紹介した使い方は初歩なのでまだまだいろいろな機能があります。 (ライフサイクル/Vue CLI / Vuex/etc・・・) • Vue.jsを勉強するときには、Javascriptの知識も必要になります。 わからないことがあったときには、Vue.jsがわからないのか、 Javascriptがわからないのか整理して調べましょう。 29
  • 30. Copyright Management Service Corp. All Rights Reserved. 参考資料 • 公式ページ https://jp.vuejs.org/index.html • 2019年JavaScriptのおすすめフレームワーク完全版!各フレームワー クを徹底比較! https://www.high-performer.jp/engineer/trend/javascript- framework/ • Wikipedia https://ja.wikipedia.org/wiki/ • リアクティブシステムが注目を集める理由 https://thinkit.co.jp/article/9185 30