Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Nuxt.jsで業務システムを作った話
Search
Wakame
October 04, 2017
Programming
4
2.4k
Nuxt.jsで業務システムを作った話
Wakame
October 04, 2017
Tweet
Share
Other Decks in Programming
See All in Programming
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.2k
まだ間に合う!Claude Code元年をふりかえる
nogu66
5
850
著者と進める!『AIと個人開発したくなったらまずCursorで要件定義だ!』
yasunacoffee
0
150
Navigation 3: 적응형 UI를 위한 앱 탐색
fornewid
1
360
FluorTracer / RayTracingCamp11
kugimasa
0
240
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
190
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
4
840
マスタデータ問題、マイクロサービスでどう解くか
kts
0
110
ローターアクトEクラブ アメリカンナイト:川端 柚菜 氏(Japan O.K. ローターアクトEクラブ 会長):2720 Japan O.K. ロータリーEクラブ2025年12月1日卓話
2720japanoke
0
730
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
320
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.2k
AIコーディングエージェント(NotebookLM)
kondai24
0
210
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
527
40k
SEO for Brand Visibility & Recognition
aleyda
0
4.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
GitHub's CSS Performance
jonrohan
1032
470k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
390
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.6k
Exploring anti-patterns in Rails
aemeredith
2
200
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Amusing Abliteration
ianozsvald
0
61
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
19
Automating Front-end Workflow
addyosmani
1371
200k
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を使った業務システムの ベストプラクティスを作り上げる!
エンジニア募集中!