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で静的ブログを作りたい!
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Naruto
January 21, 2020
Programming
570
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Vueで静的ブログを作りたい!
Naruto
January 21, 2020
Other Decks in Programming
See All in Programming
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
220
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
140
OS アップデート対応の取り組み方がもっと共有されてほしい
andpad
0
110
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
210
symfony/aiとlaravel/boost
77web
0
120
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
170
OSINT for SRE: 学術論文とポストモーテムから探る システム障害の共通パターン / SRE NEXT 2026
tomoyk
1
3.5k
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
0
200
ランチタイムLT会3周年!ランチタイムLT会を3年間続けられたお話
y0hgi
1
140
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
260
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
0
100
どこまでゆるくて許されるのか
tk3fftk
0
480
Featured
See All Featured
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
201
75k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.8k
Designing Powerful Visuals for Engaging Learning
tmiket
1
450
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
360
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
150
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
380
Being A Developer After 40
akosma
91
590k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
190
Reality Check: Gamification 10 Years Later
codingconduct
0
2.2k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
330
Statistics for Hackers
jakevdp
799
230k
Transcript
Vueで静的ブログを作りたい! Ishikawa Naruto @garypippi
Vueで静的ブログを作りたい!
Vueで静的ブログを作りたい!
Markdownで記事を書きたい! Vueで静的ブログを作りたい!
Markdownで記事を書きたい! 記事はデータベースを使わず ファイルで管理したい! Vueで静的ブログを作りたい!
Markdownで記事を書きたい! 記事はデータベースを使わず ファイルで管理したい! とにかくVueで作りたい! Vueで静的ブログを作りたい!
Markdownで記事を書きたい! 記事はデータベースを使わず ファイルで管理したい! とにかくVueで作りたい! 自作したい! Vueで静的ブログを作りたい!
Nuxt.jsで作ってみる
Nuxt.js Vue.jsベースのフレームワーク SSR(サーバーサイドレンダリング) SPAモード(SSRしないモード) 静的ファイル生成! https://nuxtjs.org/guide
nuxt generate Nuxt.jsが提供するコマンド 静的ファイル生成 関数を使って動的ルートにも対応 データをページコンポーネントに渡すことが可能 https://nuxtjs.org/api/configuration-generate
2通りの方法で作ってみました A B
PLAN A の概要 PLAN A の概要 静的ファイル生成の設定で 動的ルートを生成しつつ 記事情報をページコンポーネントに渡す
PLAN A PLAN A 記事 Nuxt.js設定ファイル(nuxt.config.js) ルート生成 記事情報処理 nuxt generate
HTML
PLAN A のいいところ PLAN A のいいところ 静的サイトは生成できる
nuxt generate --watch
そのようなオプションはありません
静的ファイル生成ではコードの変更を監視して 自動的に再生成する機能はない
A ボツ
PLAN B の概要 PLAN B の概要 記事情報を提供するコンテンツサーバーを用意し ページコンポーネント内で記事情報を取得 Nuxt.jsの開発サーバーが使える
PLAN B PLAN B Nuxt.js設定ファイル (nuxt.config.js) 記事 コンテンツサーバー ページコンポーネント 記事一覧
記事本文 日付...etc ルート生成 nuxt generate (静的サイト生成) nuxt (開発時) HTML
PLAN B のいいところ PLAN B のいいところ 静的サイトは生成できる コードの変更を監視できる サイトを確認しながら記事を書ける
PLAN B の気になる点 PLAN B の気になる点 手元に記事ファイルがあるのに コンテンツサーバーを立てている? サイト生成時のみ使うコードが ブラウザ用にもバンドルされる(Aも同様)
B ボツ
Vue Server Renderer と Webpackプラグイン を使って作ってみる
Vue Server Renderer Vue.jsでのサーバーサイドレンダリングを提供 import Vue from 'vue' import {
readFileSync } from 'fs' import { createRenderer } from 'vue-server-renderer' const renderer = createRenderer({ template: readFileSync('/path/to/template').toString() }) const vm = new Vue({ render: h => h('div', 'hello') }) renderer.renderToString(vm, {}).then(html => { console.log(html) // => hello }) https://ssr.vuejs.org/
Webpackプラグイン import { Compiler } from 'webpack' export default class
{ apply(compiler: Compiler) { compiler.hooks.run.tap('MyPlugin', compilation => { console.log('Build process is starting!!!'); }); } } https://webpack.js.org/concepts/plugins/
PLAN C の概要 PLAN C の概要 ルート生成 記事情報の取得と処理 静的ファイルの保存 上記やその他もろもろWebpackプラグインで実装
PLAN - C PLAN - C 記事 Webpackプラグイン ルート・記事情報の取得と処理 HTML描画
HTML 編集の監視 index.js webpackビルド
PLAN C のいいところ PLAN C のいいところ 静的サイトは生成できる 各種監視できる 静的サイト生成に関するコードは バンドルに含まれない
最終的にこの方法で作りました
やったー!
Vueで静的ブログ制作のまとめ Nuxt.jsはオーバスペックかもしれない Webpackプラグインで作るのがよさそう
静的ブログ自作の課題 記事読み込み処理の省メモリ化 ブログに関する様々な機能の実装 (次・前の記事へ...etc)