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
ショウノシオリ
March 20, 2019
Programming
3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Nuxt.js のディレクトリ
2019/03/20 v-kansai Vue.js/Nuxt.js meetup #4
ショウノシオリ
March 20, 2019
More Decks by ショウノシオリ
See All by ショウノシオリ
Nuxt / Vue 開発でやりがちな 「読みづらい」「わかりづらい」コード
sshono1210
0
280
開発チームのリーダーとしてどうあるべきか?
sshono1210
3
1.2k
Nuxt.js で SSR 対応する
sshono1210
1
2.3k
array_merge と array_push の違いについて
sshono1210
0
570
全くデザインを勉強したことのないエンジニアが「なるほどデザイン」を読んで少しだけ勉強した話
sshono1210
0
260
Vue.js の methods と computed
sshono1210
0
140
すぐに使える ES2015 の基本構文3つ
sshono1210
0
110
肌で感じたディレクションとマネジメント
sshono1210
0
100
Vue.jsで遊んでみよう
sshono1210
0
120
Other Decks in Programming
See All in Programming
PHP Application における Kubernetes 内 gRPC 通信
ganchiku
0
530
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
170
AI時代の仕事技芸論〜ソフトウェア開発で「遊ぶように働く」職人的熟達のすすめ(スクフェス仙台 2026バージョン)
kuranuki
0
690
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
540
霧の中の代数的エフェクト
funnyycat
1
410
act1-costs.pdf
sumedhbala
0
240
鹿野さんに聞く!『TypeScriptコードレシピ集』で磨く実践力
tonkotsuboy_com
4
1.1k
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
2.9k
ルールを書いて終わらせないハーネスエンジニアリング
yug1224
4
1.7k
エンジニアにデザインハーネスを 〜デザインプロセスを規定するためのハーネス〜 / Design harness from an engineer's perspective
rkaga
2
1.6k
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
540
琵琶湖の水は止められてもNet--HTTPのリトライは止められない / You might be able to stop the water flow of Lake Biwa but you can't stop Net::HTTP retries
luccafort
PRO
0
430
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
55
12k
How Software Deployment tools have changed in the past 20 years
geshan
0
34k
Into the Great Unknown - MozCon
thekraken
41
2.6k
Statistics for Hackers
jakevdp
799
230k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.7k
A better future with KSS
kneath
240
18k
How to Talk to Developers About Accessibility
jct
2
420
Code Review Best Practice
trishagee
74
20k
Discover your Explorer Soul
emna__ayadi
2
1.2k
Fireside Chat
paigeccino
42
4k
4 Signs Your Business is Dying
shpigford
187
22k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
430
Transcript
Nuxt.js のディレクトリ
ショウノシオリ @shosho_egg ・株式会社 chatbox テックリード ・PHPカンファレンス関西2017&2018 実行委員長 ・Laravel/Nuxt.js をよく使う ・「技術が好き」というより チームで何かを作り上げるのが好き
Nuxt.js って? ▷ Vue.js 製のフレームワーク ▷ App 開発に便利なツールが揃ってる ◦ Vuex
Store、Vue Router、SSR など ▷ npx コマンドで簡単に作れる
個人的な Nuxt.js の使い心地 ▷ ディレクトリ構成がわかりやすい ◦ どこに何を書けばいいのかがすぐわかる ◦ 複数人で開発していても破綻しにくい ◦
途中から参画した人、あまり使い慣れていない人 にとっても構成が分かりやすいので、作業分担が 比較的やりやすい (最初に各ディレクトリの説明は必要)
各ディレクトリの役割について 説明する機会が多かったので まとめてみました
1. 基本となるディレクトリ App を構築するのに最低限必要なもの
Pages Components Layouts Assets Static nuxt.config.js package.json 1-1. リソース 1-2.
画面をつくるもの 1-3. 設定ファイル App をつくる 3つの要素
1-1. リソース ▷ Assets ◦ Stylus、Sass、image、fonts といったコンパイルし ていないファイルを置く ▷ Static
◦ 静的ページファイルなどを置く ◦ 直接サーバーのルートに配置される。 (/static/robots.txt は http://localhost:3000/robots.txt ) ※画像については「部品っぽいものは Assets 、そのまま使うものは Static」 のように分けて管理しても良い App で使う画像やフォントなどの置き場所
1-2. 画面をつくるもの ▷ Layouts ◦ App のレイアウトを決めるファイルを置く ◦ ページ毎にレイアウトを指定することもできる 見た目を作るファイルの置き場所
1-2. 画面をつくるもの ▷ Pages ◦ 各URLに対するファイルを置く ◦ ここに .vue ファイルを作れば、Nuxt
が勝手に ディレクトリ内の .vue ファイルを全て読み込み URL を自動生成してくれる 見た目を作るファイルの置き場所
▷ Components ◦ コンポーネントファイルを置く ◦ 使うときは import で読み込む&コンポーネントと しての登録が必要 1-2.
画面をつくるもの 見た目を作るファイルの置き場所
▷ package.json ◦ Appの依存やスクリプトについて記述されたファイ ル。これをもとにして npm i で node_modules が出
来上がる ◦ npm 経由で新たにモジュールを追加した際などに 自動的に更新されていく ※package.json が更新されている場合はnpm i し直すのを忘れないこと 1-3. 設定ファイル Nuxt.js App の設定を行う重要なファイル
▷ nuxt.config.js ◦ App 全般の設定を行うとても重要なファイル ◦ 各プロパティでカスタム可能 ◦ 設定は基本的にこのファイルで行う 1-3.
設定ファイル Nuxt.js App の設定を行う重要なファイル
Pages Components Layouts Assets Static nuxt.config.js package.json この3つの要素を使えば 基本的な App
はつくれる! 1-1. リソース 1-2. 画面をつくるもの 1-3. 設定ファイル のだけど...
▷ 規模が大きくなってきた ▷ データの持ち回しが辛い ▷ JSプラグインを使ってみたい... ▷ 毎回ページを読み込む前にある処理を実 行させたい ...
作り出すと出てくる欲
2. +αで使うと便利な ディレクトリ より良い App 開発を行うために
データを一箇所で管理したい ▷ Store ◦ データを一括で管理できる Vuex Store ファイル を置く (データの受け渡しをpropsで頑張らなくてよくなる)
◦ Nuxt.js の場合はここに index.js を置くだけで OK (Vue.js の場合は自分で入れる必要がある) ◦ store のファイルは index.js 以外にもつくることが できる
JS プラグインを使いたい ▷ Plugins ◦ App の root インスタンスができる前に実行した い
JS プラグインを置く ◦ nuxt.config.js で登録するのを忘れずに ◦ コンポーネントの一括登録にも使える
毎回同じ処理を最初に実行したい ▷ Middleware ◦ アプリケーションのミドルウェア。ページがレンダ リングされる前に実行するカスタム関数を定義で きる ◦ ファイル名がミドルウェア名となる ◦
全てのルートに実行する場合は nuxt.config.js に 登録、特定のページで使いたい場合は ページコ ンポーネントの middleware で登録
Store Plugins Middleware 4つの要素を組み合わせると より良い App 開発が可能に! nuxt.config.js package.json Pages
Components Layouts Assets Static
ディレクトリの全体像がわかると... ▷ 影響範囲を考慮した作業振り分けができる ▷ 今まで困っていたことに対する解決手段が、実はFW に備わっていたことに気付けたりする ▷ 好きなようにカスタマイズしやすくなり、よりFWを柔 軟に活用していくことができる (一部だけ利用したり、バックエンドFWと組み合わせたり)
(Nuxt.js に限らず、FW全般)
まとめ ▷ Nuxt.js のディレクトリ構造はシンプルで分かり易く、 便利なツールもたくさん揃っている ▷ FW の全体像を知っていると、App 開発をより良い方 向に進めていく近道となる
Thanks! Any questions? You can find me at: @username
[email protected]