JavaScript も jQuery も未経験の新人エンジニアが 1 年間 Vue.js を学習して感じた話株式会社ラクス 川又 由雅FRONTEND CONFERENCE 2019
View Slide
自己紹介● 川又 由雅● 株式会社ラクス● 業務で経験した言語○ PHP(Laravel)○ HTML, CSS○ JavaScript, jQuery, Vue.js● Chat Dealerの開発に携わっている2
定期的に勉強会を開催中!3https://rakus.connpass.com/
この発表のターゲット● これから Vue.js を学び始める人○ 勉強法、つまづいたときの解決法など● Vue.js を教える人○ Vue.jsを初めて学ぶ人がどこにつまづくか、解決させるにはどうすればよいか4
目次● Vue.js との出会い● Vue.js の学習方法● 開発業務で Vue.js を使ってみて苦労したこと● Vue.js と jQuery を使いこなせるようになってきて● これから Vue.js を学び始める人へ● まとめ5
Vue.js との出会い6
Vue.js とは?● 2014 年にリリースされた JavaScript のフレームワーク● 2015 年には PHP のフレームワーク「Laravel」のフロントエンドエンジンに採用され、知名度が上昇● Adobe や任天堂、LINE など有名な企業で広く採用されている7
Vue.js とは?● JavaScript のデータを更新するだけで描画されている内容も更新される(データバインディング)● 一度作ったリソースの再利用を得意としている(コンポーネント)8
Vue.js を触ったきっかけ● 研修で Vue.js の学習を行った○ 配属された部署で開発している「Chat Dealer」はフロントエンドに Vue.js や jQuery が用いられている9
Chat Dealer とは?● サイトに専用スクリプトを埋め込んで利用するチャットシステム10
Chat Dealer で Vue.js を使うところ● 管理画面11
Vue.js の学習12
Vue.js の勉強の流れまずは教科書を読む● 「基礎から学ぶ Vue.js」mio 著● Vue.js がどんなものなのか知る● サンプルコードが豊富● Vue.js について詳しく書かれている13
Vue.js の勉強の流れWeb 上でコードを書いてみる(JSFiddle)● 公式ドキュメントを読みながら書いてみる● 教科書のサンプルコードを読みながら書いてみる● ちゃんと説明通り動くか確認● https://jsfiddle.net/14
15
Vue.js に対して感じたこと● 機能が豊富○ データバインディング○ v-if(分岐)○ v-for(繰り返し) ...etc● 記述がシンプル○ データ、メソッドの構成がわかりやすい16
便利な機能● データバインディング○ データを更新するだけで描画内容が更新される○ 入力内容をプレビューとして表示するときに変更がすぐ反映されて便利○ 入力してすぐに描画内容が変わったことに驚いた17
18ここでデータバインディングを行う使用するデータ
便利な機能19
便利な機能● v-if○ 入力内容によって表示⇔非表示を変える○ ブロックの表示⇔非表示を簡単に切り替えられて便利○ データとv-ifを使うだけでブロックの表示⇔非表示を切り替えられて驚いた20
21表示⇔非表示の判定を行う使用するデータ
22isShow == trueのときisShow == falseのとき
便利な機能● v-for○ 配列として格納しているデータの中身を繰り返し描画する○ 簡単に配列の中身をループすることができてうれしい○ 繰り返し処理の記述の簡単さに驚いた23
24使用する配列リストで配列の中身を繰り返し描画
25実行結果
シンプルな記述● 構成に関してどこに何を書くべきかわかりやすい○ データ(data)○ メソッド(methods)26
開発業務で Vue.js を使ってみて苦労したこと27
コンポーネント● 開発中のコードで、設定したデータがどう動いているか理解するのに苦労した○ コードの量が多くて整理しづらかった→デバッグを用いてデータの流れをメモしながら整理する28
コンポーネント● 教科書を読んでもなかなかコンポーネントを理解できなかった→教科書をじっくり読んで理解できないときは先輩に聞く29
イベントハンドラ● イベントハンドラ:ボタンをクリックしてアラートを出すなど処理を行う30
31使用するイベントハンドラ(ボタンをクリックすると発動)「data中のname(“Vue.js”)」とイベントを起こしたタグの名前(button)をアラートで表示
イベントハンドラ● 引数に入れる「event」をどう使えばよいかわからなかった→不明点を先輩に教えてもらったWeb上のサンプルコードや教則動画を見てみる32
Vue.js と jQuery を使いこなせるようになってきて33
jQuery に対する所感● Vue.js と違って使用する範囲を指定しないのは自由に書けていい○ Vue.js で使用する範囲がかぶるとエラーになる34
35かぶるとエラーが発生
jQuery に対する所感● class, id による検索など構文の書き方が面倒○ Vue.js は使いたい要素に書けばよいが、jQuery はclass, id から検索する○ 運用も Vue.js の方が楽に感じる36
jQuery に対する所感● jQuery37class 名を検索
● Vue.jsjQuery に対する所感38要素を直接指定
Vue.jsに対する所感● 機能が豊富で多くのことが実現できてうれしい○ for 文による繰り返し○ if 文による分岐処理 ...etc● 記述がシンプルで理解しやすい● 半年から1年にかけてコンポーネントがスラスラ書けるようになり、理解が深まったことを実感した39
比較してどう感じたか● Vue.js のほうが書き方がシンプルに感じた○ v-for のように配列を用いた繰り返しが簡単に書けて良い○ v-if のように表示⇔非表示が簡単に書けて良い○ 対象の要素に直接書き込んで使えて良い● Vue.jsは使用する範囲を指定するところが面倒40
これから Vue.js を学び始める人へ41
おすすめの Vue.js の学習法1. サンプルコードを記述して実行○ 公式ドキュメント、教科書を参照する →実際に書いてみることで知識が定着する○ 業務で教科書の「4章:データの加工と監視」のゲッター、セッターは非常に役に立った42
おすすめの Vue.js の学習法2. 学習したことを取り入れたページを作ってみる○ TODOリスト→学んだことをどう使うか考えるのでより理解が深まる43
まとめ44
まとめ45● 公式ドキュメントなど日本語のドキュメントが豊富で学習しやすかった● 記述がシンプルで理解しやすかった
まとめ46● コンポーネントは導入は難しいが理解できれば便利でうれしい● jQuery と比較して記述がシンプルで良い● 理解を深めるならサンプルコードを書くだけでなく、学習したことを取り入れたページを作成してみるのも良い
まとめ47● Vue.jsの内容で理解が不足しているポイントがないか探して、もう1度学び直したい● 自分でページを作ってみたい○ TODO リスト○ チャットアプリ ...etc