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
Nuxt.jsで業務システムを作った話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Wakame
October 04, 2017
Programming
2.5k
4
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Nuxt.jsで業務システムを作った話
Wakame
October 04, 2017
Other Decks in Programming
See All in Programming
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4k
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
210
Contextとはなにか
chiroruxx
0
280
ADKを使って簡単にAIエージェントを作ってみよう
k1mu21
0
250
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
250
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
230
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.3k
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
230
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
150
運用エージェントは "作る" から "育てる" へ - 記憶と自己進化の3層設計パターン / self-evolving-agents-three-layer-agent-design
gawa
12
3.6k
LLM Plugin for Node-REDの利用方法と開発について
404background
0
170
Oxcを導入して開発体験が向上した話
yug1224
4
300
Featured
See All Featured
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
Google's AI Overviews - The New Search
badams
0
1k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Building Flexible Design Systems
yeseniaperezcruz
330
40k
Building an army of robots
kneath
306
46k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
150
The World Runs on Bad Software
bkeepers
PRO
72
12k
Writing Fast Ruby
sferik
630
63k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
160
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.3k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
310
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
270
Transcript
Nuxt.jsで業務システムを 作った話 @wakame_isono_ / 株式会社KEY SELECT Vue.js Tokyo v-meetup #5
2017.10.04
@wakame_isono_ • 元Sler(VB.NET) • Ruby on Rails ちょっとできる • 今はフロントエンド(Nuxt.js、Vue.js)
流れ • なぜNuxt.jsなのか? • 作ったもの • 共通処理問題 • Component問題 •
FormのVuex対応問題 • Nuxt.jsを使ってみて • これからやりたいこと
なぜNuxt.jsなのか?
わかめさんと仲間たち Web初⼼者 上司 Nuxt.jsがいいんじゃない?
• 上司に⾔われたから • Vue.jsに先⾒性 • Nuxt.jsはVue-Router、Vuex、Vue-Meta等のサポートがあり、 未経験者にとって学習コストが低いと想定
作ったもの
• SPA ( Nuxt.js の SPA Mode) • Request Point
500 以上 Component 350 以上 • ソース管理にGitLab • API 側は PHP7.1 (Symfony3.3) • 社内のGitLabにPushしたら、⾃動でビルドしてAmazon S3に デプロイされる ECサイトのバックヤード
共通処理問題
1. 初期化処理 2. 検索処理 3. ページング処理 検索フォーム リスト ページング 業務システムあるある画⾯
リスト更新中は ローディング
検索フォーム リスト ページング 検索フォーム リスト ページング 検索フォーム リスト ページング 保守性なし
こんな画⾯がいっぱいあった コピペしまくり
Page Component Request URL 検索条件 Mixinを使ってみた! 初期処理 Mixin Page Component
Request URL 検索条件 Page Component Request URL 検索条件 検索処理 ページング処理 リスト更新処理
………でも? イレギュラーがあった場合にどうするの?
チェックボックスがついたリスト XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXX リストを更新するときに チェックボックスを 初期化したい
リスト更新処理を再定義 初期処理 Mixin 検索処理 ページング処理 リスト更新処理 Page Component Request URL
検索条件 リスト更新処理 リスト更新処理を 再定義して チェックボックス を初期化
superみたいなことはできないの?
https://jsfiddle.net/wakame_isono_/oy98h6f8/
mixinオブジェクトのメソッドを呼ぶ⼿法で 擬似的なsuperを実現
Component問題
コンポーネント設計とはいうけれど。。。 よくわからん
Atomic Design 検索 原⼦ 検索 分⼦ 有機物 テンプレート ページ XXXX
XXXX XXXX XXXX
………でも? データからみた視点がほしい
Objectの階層単位で考えてみる
受注Object 商品Array
商品Object 商品Array
商品Object 商品の⼊荷処理を⾏う
処理が単純化された
FormのVuex対応問題
業務システムのフォームは複雑 • Nested Object • ⼀つのフォームに何⼗項⽬
双⽅向算出プロパティだと項⽬数分の getter setter が必要 つらい
Objectの階層単位で考えてみる
https://jsfiddle.net/wakame_isono_/c7dru691/
⼀つのComponentに⼀組のGetter Setterのみ
Nuxt.jsで業務システムを作ってみて
良かったこと • ドキュメントが⽇本語化されていること • Vue-RouterやVuexを⾃動で⽣成してくれるなど、開発を効率 化してくれる機能がある • Component化することで処理を単純化できた
課題もある • 情報が少ない • Vue.js⽤のPluginがそのまま使えないことが多い • 拡張しにくい(Vue-Router等) • サーバーサイドとクライアントサイドでDOMのミスマッチが起 こる
これからやりたいこと
Nuxt.js、 Vue.jsを使った業務システムの ベストプラクティスを作り上げる!
エンジニア募集中!