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
960
Vue.js with Laravel
社内ワークショップでVue.jsの実装についてLTした際の資料です
C058
October 17, 2017
Tweet
Share
More Decks by C058
See All by C058
エンジニア研修 実施側(しくじった) LT
c058
0
80
Webアクセシビリティについて興味を持ってみよう
c058
1
110
PHP7で致命的エラーを 処理したい
c058
0
800
Other Decks in Programming
See All in Programming
ISUCON14感想戦で85万点まで頑張ってみた
ponyo877
1
210
月刊 競技プログラミングをお仕事に役立てるには
terryu16
1
1.1k
GitHubで育つ コラボレーション文化 : ニフティでのインナーソース挑戦事例 - 2024-12-16 GitHub Universe 2024 Recap in ZOZO
niftycorp
PRO
0
1.1k
return文におけるstd::moveについて
onihusube
1
1.4k
命名をリントする
chiroruxx
1
570
今年一番支援させていただいたのは認証系サービスでした
satoshi256kbyte
1
280
선언형 UI에서의 상태관리
l2hyunwoo
0
250
数十万行のプロジェクトを Scala 2から3に完全移行した
xuwei_k
0
760
rails newと同時に型を書く
aki19035vc
5
610
Monixと常駐プログラムの勘どころ / Scalaわいわい勉強会 #4
stoneream
0
320
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
2
7.7k
バグを見つけた?それAppleに直してもらおう!
uetyo
0
210
Featured
See All Featured
YesSQL, Process and Tooling at Scale
rocio
170
14k
Git: the NoSQL Database
bkeepers
PRO
427
64k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
28
4.4k
The Language of Interfaces
destraynor
155
24k
Six Lessons from altMBA
skipperchong
27
3.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Art, The Web, and Tiny UX
lynnandtonic
298
20k
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