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
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
310
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
150
エージェンティックRAGにAWSで入門しよう!
har1101
8
1.3k
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
150
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
380
「エンジニアインターン、どうやって取った?」準備のリアルを語るLT会 Progate BAR
akiomatic
0
120
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
120
Webフレームワークの ベンチマークについて
yusukebe
0
150
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
200
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
18
6.3k
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
250
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
230
Featured
See All Featured
Making Projects Easy
brettharned
120
6.7k
The Curious Case for Waylosing
cassininazir
1
380
Color Theory Basics | Prateek | Gurzu
gurzu
0
360
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Raft: Consensus for Rubyists
vanstee
141
7.5k
Producing Creativity
orderedlist
PRO
348
40k
Done Done
chrislema
186
16k
From π to Pie charts
rasagy
0
200
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
770
Discover your Explorer Soul
emna__ayadi
2
1.1k
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)