Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Nuxt.jsで業務システムを作った話
Search
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
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
260
DynamoDBの基礎を振り返りながらベクトル検索機能を理解する
musan
3
270
異なる設計思想のフレームワークを経験して得た学び
amekuhideki
2
1.5k
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
120
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
140
ALB ログから Trace を気合で繋げる技術
fohte
7
880
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
510
Webの地図
yosuke_furukawa
PRO
3
2.3k
ソフトウェアラスタライザ
fadis
1
800
Intent as Code
shoppingjaws
2
480
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
170
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
1
120
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.8k
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.7k
Prompt Engineering for Job Search
mfonobong
0
440
Paper Plane
katiecoart
PRO
2
53k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
Game over? The fight for quality and originality in the time of robots
wayneb77
1
270
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Are puppies a ranking factor?
jonoalderson
2
3.9k
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
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を使った業務システムの ベストプラクティスを作り上げる!
エンジニア募集中!