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 with Laravel
Search
C058
October 17, 2017
Programming
0
990
Vue.js with Laravel
社内ワークショップでVue.jsの実装についてLTした際の資料です
C058
October 17, 2017
Tweet
Share
More Decks by C058
See All by C058
エンジニア研修 実施側(しくじった) LT
c058
0
81
Webアクセシビリティについて興味を持ってみよう
c058
1
110
PHP7で致命的エラーを 処理したい
c058
0
810
Other Decks in Programming
See All in Programming
なぜ「共通化」を考え、失敗を繰り返すのか
rinchoku
1
510
第9回 情シス転職ミートアップ 株式会社IVRy(アイブリー)の紹介
ivry_presentationmaterials
1
240
地方に住むエンジニアの残酷な現実とキャリア論
ichimichi
5
1.3k
GoのGenericsによるslice操作との付き合い方
syumai
3
690
たった 1 枚の PHP ファイルで実装する MCP サーバ / MCP Server with Vanilla PHP
okashoi
1
190
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
110
CursorはMCPを使った方が良いぞ
taigakono
1
180
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
210
20250628_非エンジニアがバイブコーディングしてみた
ponponmikankan
0
430
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
akihisaikeda
3
310
ruby.wasmで多人数リアルタイム通信ゲームを作ろう
lnit
2
270
LINEヤフー データグループ紹介
lycorp_recruit_jp
0
890
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
Faster Mobile Websites
deanohume
307
31k
Fireside Chat
paigeccino
37
3.5k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
Site-Speed That Sticks
csswizardry
10
660
Scaling GitHub
holman
459
140k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Building an army of robots
kneath
306
45k
Large-scale JavaScript Application Architecture
addyosmani
512
110k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.8k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Visualization
eitanlees
146
16k
Transcript
Vue.js with Laravel @C058
アジェンダ 1. PICUPについて 2. CMSでの考慮ポイント 3. Vue.js, Laravelの説明 4. 開発のはじめ方
5. Vue.js基礎 6. PICUPでの実装をチョット見せます
”ピカップ”はあなたが安心して次の一歩を踏み出せる お買い物を”その道のプロ”が提供する情報でサポート するメディア https://picup.allabout.co.jp/
None
注力ポイント✌ いかに良い情報(記事)を発信できるか ≒ 記事本数をどれだけ増やせるか ⇓ 良いCMSをどのくらい提供できるか
良いCMS ≒ 良いユーザビリティ ある製品が 特定のユーザによって 特定の状況下で 特定の目標を達成する際に 求められる 有効さ・効率・満足度の度合い
CMSでは • 処理の成功失敗をユーザーが理解出来る • 何を入力したら良いか分かる • 痒いところに手が届く機能 • メディア・業務フローの成熟具合に応じて機能改修・追加しや すい
以上、踏まえたうえで実装は • UI,UXにこだわる • 機能追加・改善しやすい構造にする • データ構造をシンプルにする • 拡張性を担保する
PICUPの利用フレームワーク • Vue.js 2系 • Laravel 5.4
Vue.js
Vue.js 特徴 • リアクティブ(疎結合でスケーラビリティ高い) なデータバインディング • 再利用性の高いコンポーネント • 仮想DOMによる高速なレンダリング ◦
DOM構造に依存しないデータ構造 • シンプルなAPI • vue.jsのコメントがたまに中国語
Vue.js メリット • 日本語ドキュメントが充実 • コンポーネント志向->機能を疎結合にできる ◦ HTMLとJSの実装を1セット1ファイルで管理できる ◦ (ヤバイ仕様・実装を閉じ込めることが可能)
• 既存実装と同居しやすい ◦ 必要に応じてjQueryも併用できる • 少しの学習コストで済む
Laravel 5.3 -> Vue.jsを標準JavaScriptフレームワークに採用 5.4 -> フロントエンドビルドツールが gulpベースElixir→WebpackベースのMixに Web APIはLaravelで作成
SPAをVue.jsで組む、といったことが簡単にできる
Vue.js + Laravel 拡張性の高いアプリがすぐに つくれる組み合わせ。
Vue.js + Laravelの始め 方
始め方 1. Laravel インストール a. composer create-project --prefer-dist laravel/laravel %アプリ名%
2. npm install 3. resourcesに.vue用意する 4. bladeでjs読み込む 5. サーバー立ち上げ a. php artisan serve b. http://127.0.0.1:8000 6. npm run watch
Vueでとりあえず覚えておくこと • データバインディング • 双方向バインディング • method, computed • レンダリング
• コンポーネント
イベント・ データバインディング +メソッド http://127.0.0.1:8000/
双方向データバインディング レンダリング コンポーネント http://127.0.0.1:8000/todo
結構、簡単。
PICUP CMSの実装
コンポーネント • 入力フォーム項目1つを1コンポーネント扱い ◦ データ構造とDOMが連動しないので並び替えや表示・仕様変更に耐えやすい ◦ ex)URLからのタイトル自動取得・文字数カウントは入力補助機能 • ギミックはコンポーネントに閉じ込める ◦
ローカルで完結する処理をコンポーネントに閉じ込めることで 処理が隔離され見通しが良くなった✌
参考資料 • 本家ドキュメント https://vuejs.org/ • デモリポジトリ https://github.com/C058/vue-laravel
開発Tips
https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd?hl=ja